列表
一、序列
-
序列是Python的中最基本的数据结构
-
序列每个值都有对应的位置,称之为索引,第一个索引是0,第二个索引是1,以此类推
-
Python有6个序列的内置类型,但最常见的是列表和元组
-
列表的操作:索引,切片,加,乘,检查成员
二、列表
列表的每个数据项不需要相同的数据类型
创建:使用方括号,每个值之间使用逗号分隔
# 直接创建
list_create =['a','b',1,2]
# 字符串分割,使用split(),分割后的变量是一个列表
n = "1 2 3 4 5 6"
m = n.split()
# 列表解析式(列表推导式):遍历生成
n = "123456"
my_list =[int(i) for i in n]
# 使用range函数
my_list = range(5, 51, 5) # 创建一个从5到50,都是5的倍数的列表
访问列表中的值:使用索引
- 正向索引:第一元素从0开始,递增
list_create =['a','b',1,2]
print(list_creat[1])
>>> b
- 逆向索引:最后一个元素从-1开始,往前一位为-2,以此类推
list_create =['a','b',1,2]
print(list_creat[-2])
>>> 1
- 截取:
list_create = [1,2,3,'a','b','c']
print(list_create[1:3]) #截取的是索引值>=1,且索引值<3的值
print(list_create[-3:-1]) #截取的是索引值>=-3,且索引值<-1的值
>>>[2,3]
>>>['a','b']
更新列表:
- 修改(更新):直接使用索引更新值;
list_create = [1,2,3,'a','b','c']
list_create[2]=4 #直接使用索引更新值
print('更新后的列表',list_create)
>>>更新后的列表 [1, 2, 4, 'a', 'b', 'c']
- 添加元素:列表使用append()
list_create.append('add') #往列表的尾部添加一个元素
print('更新后的列表',list_create)
>>>更新后的列表 [1, 2, 4, 'a', 'b', 'c', 'add']
- 删除元素:使用del语句,或者使用pop
list_create = [1, 2, 3, 'a', 'b', 'c']
# 使用del语句删除
del list_create[1]
# 或者使用列表的pop移除函数,参数是索引,会删除原表的数据
list_create.pop(1)
print('更新后的列表',list_create)
脚本操作符
+号用于组合列表,*号用于重复列表
list_create = [1, 2, 3]
list_group = ['z', 'b', 'c']
list_obb = list_create + list_group
print(list_obb)
list_mult = list_group * 3
print(list_mult)
'''[1, 2, 3, 'z', 'b', 'c']
['z', 'b', 'c', 'z', 'b', 'c', 'z', 'b', 'c']
'''
Python的列表截断与拼接
截断:只是截取列表的部分值,不改变列表本身
拼接:就是组合两个列表,创建新的列表,然后修改原本列表为新的列表
list_create = ['z', 'b', 'c']
print(list_create[0:2])
print(list_create)
list_create += [1, 2, 3]
print(list_create)
'''
>>>['z', 'b']
>>>['z', 'b', 'c']
>>>['z', 'b', 'c', 1, 2, 3]
'''
嵌套列表:在列表中创建其他列表
列表函数
len(list):元素个数(长度)
max(list):返回列表元素的最大值
min(list):返回列表元素的最小值
list(seq):将元组装换为列表
注:max和min函数,需要列表的元素全都为整数或者都为字符串
# 通过将输入的字符串分隔成list,使用map()映射函数将列表的元素全部转换成整数,将map对象转换成list对象
data_list = list(map(int, input().split()))
# 使用max()函数获取列表的最大值
print(max(data_list))
# 使用min()函数获取列表的最小值
print(min(data_list))
# 使用sum()函数计算列表的总数
print(sum(data_list))
方法
list.append(obj):在列表尾部添加新的对象
list.count(obj):统计某个元素在列表中出现的次数
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用于新列表扩展原来的列表)
list.index(obj):从列表中找出某个值第一个匹配项的索引位置
list.insert(index,obj):将对象插入列表,在索引index的位置,插入一个元素
list.pop(index= -1):移除列表指定索引的元素,默认为-1(最后一个)
list.remove(obj):移除列表中某个值的第一匹配项
list.reverse():反向列表中元素
list.sort():对原表进行排序
list.clear():清空列表
list.copy():复制列表
实践应用
列表排序:sort和sorted
'''
sort是列表函数,而sorted是所有可迭代的对象进行排序操作。
sort会改变原本的列表,sorted是生成临时list对象,不改变原本的迭代对象
两者的排序参数规则一致:
reverse:True降序,False升序(默认)
'''
data_list = [1, 6, 5, 4, 2]
data_list.sort(reverse=False)
data_dict = {"<": "less than", "==": "equal"}
dict_list = sorted(data_dict.items(), reverse=True)
# 列表的统计函数,参数是被统计的元素
print(dict_list.count(2))