list
(列表)专门用于存储一串信息,可以存储不同类型的数据;
用?[]
?定义,数据?之间使用?,
?分隔;
索引?从?0
?开始,是数据在?列表?中的位置编号,又可以被称为下标;在其他语言中通常叫数组
把逗号分隔的不同的数据项使用方括号括起来
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
通过 dir(list)函数 查看某类型中定义的?法
列表索引从?0?开始,第二个索引是?1,依此类推。通过索引列表可以进行截取、组合等操作。
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
out:
red
green
blue
索引也可以从尾部开始,最后一个元素的索引为?-1,往前一位为?-2,以此类推
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
print( list[-2] )
print( list[-3] )
out:
black
white
yellow
返回某个元素在理表中的索引,元素在列表中多次出现,只返回第一次出现的元素的索引Python3 List index()方法 | 菜鸟教程
print(name_list.index("wangwu"))
name_list = ["zhangsan", "lisi", "wangwu"]
name_list[1] = "李四"
# append 方法可以向列表的末尾追加数据
name_list.append("王小二")
# insert 方法可以在列表的指定索引位置插入数据,两个参数,索引和要插入的元素
name_list.insert(1, "小美眉")
a = [1, 2, 3]
# extend 方法向列表中添加多个元素,入参为一个可遍历的对象
#字符串
a.extend('hello')
#列表
a.extend([11, 22, 33])
# 对于字典来说是把字典的值添加到列表里面
a.extend({'name': 'tom', 'age':29})
# remove 方法可以从列表中删除第一次出现的指定的数据
name_list.remove("wangwu")
# 删除指定索引的变量
del(list1[4])
# pop 方法默认可以把列表中最后一个元素删除
name_list.pop()
# pop 方法可以指定要删除元素的索引
name_list.pop(3)
# clear 方法可以清空列表
name_list.clear()
name_list = ["张三", "李四", "王五"]
# (知道)使用 del 关键字(delete)删除列表元素
# 提示:在日常开发中,要从列表删除数据,建议使用列表提供的方法
del name_list[1]
# del 关键字本质上是用来将一个变量从内存中删除的
name = "小明"
del name
# 注意:如果使用 del 关键字将变量从内存中删除
# 后续的代码就不能再使用这个变量了
print(name)
print(name_list)
name_list = ["张三", "李四", "王五", "王小二", "张三"]
# len(length 长度) 函数可以统计列表中元素的总数
list_len = len(name_list)
print("列表中包含 %d 个元素" % list_len)
# count 方法可以统计列表中某一个数据出现的次数
count = name_list.count("张三")
print("张三出现了 %d 次" % count)
print(name_list)
name_list = ["zhangsan", "lisi", "wangwu", "wangxiaoer"]
num_list = [6, 8, 4, 1, 10]
# 升序
# name_list.sort()
# num_list.sort()
# 降序
# name_list.sort(reverse=True)
# num_list.sort(reverse=True)
# 逆序(反转)
name_list.reverse()
num_list.reverse()
print(name_list)
print(num_list)
函数:copy()
name_list = ['Tom', 'Lily', 'Rose']
name_li2 = name_list.copy()
# 结果:['Tom', 'Lily', 'Rose']
print(name_li2)
拆包就是把列表中的每个值拆出来,拆包操作同样适用与元组、集合、字典;
list1 = ['关羽', '张飞', '刘备']
# a = list1[0]
# b = list1[1]
# c = list1[2]
a, b, c = list1 # 等号左边的变量数量要和等号右边的列表成员数量匹配
print(a, b, c)
拓展
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象 1 和 2 分别分配给变量 a 和 b,字符串对象 "john" 分配给变量 c
作用:快速生成成员数据量庞大的列表
语法:
列表变量名 = [x for x in range (开始值,结束值,步长)]
列表变量名 = [x for x in range (开始值,结束值,步长) if 条件]
例子:
1. 基本的?式
- a = [x for x in range(4)]????????# a 的内容为[0, 1, 2, 3]
- a = [x for x in range(2, 4)]????????# a 的内容为[2, 3]
- a = [x for x in range(3, 10, 2)]?????????# a 的内容为[3, 5, 7, 9]
2. 在推导过程中使?if
- a = [x for x in range(3, 10) if x % 2 == 0]????????# a 的内容为[4, 6, 8]
- a = [x for x in range(3, 10) if x % 2 != 0]????????# a 的内容为[3, 5, 7, 9] ?
所谓列表嵌套指的就是?个列表??包含了其他的?列表。
例:
要存储班级?、?、三三个班级学?姓名,且每个班级的学?姓名在?个列表
# 查找到数据"李四"
name_list = [['?明', '?红', '?绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李四',
'王五']]
# 第?步:按下标查找到李四所在的列表
print(name_list[2])
# 第?步:从李四所在的列表??,再按下标找到数据李四
print(name_list[2][1])