列表是存储数据类型的一种容器。
列表创建
两种方法:
1、直接用英文中括号将任意各元素括起来,例如:
lista = []
listb = [1,2,3]
listc = [Ture,False,1,'name']
2、list()函数定义
lista = list()
listb = list('123') #等价于listb = ['1',2','3']
listc = list(range(10)) #等价于listc = [0,1,2,3,4,5,6,7,8,9]
列表的访问
可以用列表名输出整个列表,亦可以通过索引获取指定元素
list1 = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
print (list1[2]) # 结果 Wednesday
print (list1) #获得整个列表的值
列表的遍历
一次性、不重复地访问列表的所有元素,可以结合其他操作一起完成,例如:查找、统计。遍历两种方法:
1、for … in 循环遍历
list1 = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
print('打印一周日期:)
for week in list1:
print (week)
2、使用 for … in 循环和enumerate()
这种方法可以同时输出索引值和列表元素的内容。
list1 = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
print('打印一周日期:)
for index,week in enumerate(list1):
print (index + 1,week)
列表元素的增加
列表是一个可变序列,其元素可以增加、删除和修改。增加操作有三种:
1、使用append () 方法
在列表末尾添加新对象。一次添加一个对象。
list1 = ['上海','北京','天津']
list1.append('杭州') #新列表'上海','北京','天津','杭州'
2、使用extend ()方法
同样也是在列表末尾添加新的对象,该方法参数为一个里列表类型,可以将一次性将列表每个元素都添加到元里列表中。一次性添加一堆对象。
list1 = ['上海','北京','天津']
t = ['杭州','广东','厦门']
list1.extend(t) #新列表:'上海','北京','天津','杭州','广东','厦门'
3、使用insert ()方法
在列表的指定索引位置增加元素
list1 = ['上海','北京','天津']
list1.insert(2,'杭州') #新列表:'上海','北京','杭州','天津'
列表元素的删除
常见删除元素3种操作:
1、del命令
删除列表中制定索引值的元素:
list1 = ['上海','北京','天津']
del list1[0] #删除索引值为0的上海
del list1[0:2] #删除索引0、1的两个元素,切片的原则“包前不包后”,
#所以索引值2的元素不会被删除
2、使用pop()方法删除
pop()根据索引只删除并返回对应位置的元素,与del相比可以返回删除的值:
list1 = ['上海','北京','天津']
a = list1.pop(2) #删除“天津”,并将“天津”值赋给a
print(a) #将显示a值 “天津”
list1.pop(-1) #删除“北京”,-1索引值将跳到最末尾一个值
如果索引值越界,报错:IndexError
3、使用remove()方法
remove()可以删除列表中首次出现的指定元素:
list1 = ['上海','北京','天津','北京','天津','重庆']
list1.remove('天津') #删除原索引值2的天津,保留索引值4的天津
列表元素的修改
通过索引值获取该元素值,然后重新复制即可
list1 = ['上海','北京','天津','北京','天津','重庆']
list1[4] = '西安' #列表中索引4天津被替换为西安
列表元素的排序
Python内置函数sort()和sorted()对列表原宿进行排序,语法格式:
list_name.sort/sorted(key = None,reverse = False)
# key指定从每个元素中提取一个用于比较的键,默认None
# reverse表示排序方式,默认为升序排列。
sort()会改变原列表元素的排列顺序,对中文支持不友好;
sorted()建立一个原列表的副本,该副本为排序后的列表,原列表保持不变。
list1 = [1,45,76,3,15,2,100]
list1.sort
print(list1) #[1,2,3,15,45,76,100]
list1 = [1,45,76,3,15,2,100]
list2 = sorted(list1)
print(list1) #[1,45,76,3,15,2,100] 原列表
print(list2) #[1,2,3,15,45,76,100] 新列表
列表的其它操作
list1 = [1,2,3,4,5,6,7,8,9,10] #以这个数组为例子
索引
list_name[index]
list1[2] #值是76
切片
list_name[start:end:step]
list1[1:4] #正向切片,[2,3,4] 包前不包后,取索引1、2、3的值
list1[9:2:-2] #反向切片,步长2,[10,8,6,4]
连接
list_name1 + list_name2
list1 = ['abc']
list2 = ['def']
list3 = list1 + list2 #['abcdef']
list4 = [1,2,3]
list3 = list1 + list4 #['abc',1,2,3]
统计长度
两个列表拼接在一起
len(list1) #等于10
获取次数
统计某个元素在列表中出现的次数
list2 = list('abcdabcdaaa')
list2.count('a') #统计a出现的次数,5
获取首次索引
获取某个元素在列表中出现的索引
list2 = list('abcdabcdaaa')
list2.index('a') #0
统计和
统计列表中所有元素的和
sum(list1) # 55
最大值
max(list1) #10
最小值
min(list1) #1