列表是存储数据类型的一种容器。

列表创建

两种方法:
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