Python数据类型(2)
列表(list)
1、定义
列表是Python 中使用最频繁的数据类型,在其他语言中通常叫做数组,通过索引进行查找,使用方括号”[]”。
列表是有序的集合。
2、应用场景
定义列表使用[ ] 定义,数据之间使用“,”分割。
3、列表支持索引和下标
索引就是数据在列表中的位置编号,索引又可以被称为下标。
列表的索引从0 开始,从列表中取值时,如果超出索引范围,程序会产生异常(IndexError: list index out of range)。
4、列表的常用操作
name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
a_tuple = ('123','abc',123)
a_list = list(a_tuple)
print(a_tuple)
print(a_list)
结果:
('123', 'abc', 123)
['123', 'abc', 123]
1)增加
列表名.insert(index, 数据):在指定位置插入数据(位置前有空元素会补位)。
1.# 往列表name_list 下标为0 的地方插入数据
2.In [3]: name_list.insert(0, "Sasuke")
3.In [4]: name_list
4.Out[4]: ['Sasuke', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu']
5.# 现有的列表下标是0-4,如果我们要在下标是6 的地方插入数据,那个会自动插入到下标为5 的地方,也就是# 插入到最后
6.In [5]: name_list.insert(6, "Tom")
7.In [6]: name_list
8.Out[6]: ['Sasuke', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'Tom']
列表名.append(数据):在列表的末尾追加数据(最常用的方法)。
1.In [7]: name_list.append("Python")
2.In [8]: name_list
3.Out[8]: ['Sasuke', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'Tom', 'Python']
列表.extend(Iterable):将可迭代对象中的元素追加到列表。
1.# 有两个列表a 和b a.extend(b) 会将b 中的元素追加到列表a 中
2.In [10]: a = [11, 22, 33]
3.In [11]: b = [44, 55, 66]
4.In [12]: a.extend(b)
5.In [13]: a
6.Out[13]: [11, 22, 33, 44, 55, 66]# 有列表c 和字符串d c.extend(d) 会将字符串d 中的每个字符拆开作为元素插入到列表c
7.In [14]: c = ['j', 'a', 'v', 'a']
8.In [15]: d = "python"
9.In [16]: c.extend(d)
10.In [17]: c
11.Out[17]: ['j', 'a', 'v', 'a', 'p', 'y', 't', 'h', 'o', 'n']
2)取值和修改
取值:列表名[index],根据下标来取值。
1.In [19]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
2.In [20]: name_list[0]
3.Out[20]: 'zhangsan'
4.In [21]: name_list[3]
5.Out[21]: 'zhaoliu'
修改:列表名[index] = 数据,修改指定索引的数据。
1.In [22]: name_list[0] = "Sasuke"
2.In [23]: name_list
3.Out[23]: ['Sasuke', 'lisi', 'wangwu', 'zhaoliu']
3)删除
del 列表名[index]:删除指定索引的数据。
1.In [25]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"] # 删除索引是1 的数据
2.In [26]: del name_list[1]
3.In [27]: name_list
4.Out[27]: ['zhangsan', 'wangwu', 'zhaoliu']
列表名.remove(数据):删除第一个出现的指定数据。
5.In [30]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu", "lisi"] # 删除第一次出现的lisi 的数据
6.In [31]: name_list.remove("lisi")
7.In [32]: name_list
8.Out[32]: ['zhangsan', 'wangwu', 'zhaoliu', 'lisi']
列表名.pop():删除末尾的数据,返回值: 返回被删除的元素。
9.In [33]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"] # 删除最后一个元素zhaoliu 并将元素zhaoliu 返回
10.In [34]: name_list.pop()
11.Out[34]: 'zhaoliu'
12.In [35]: name_list
13.Out[35]: ['zhangsan', 'lisi', 'wangwu']
列表名.pop(index):删除指定索引的数据,返回被删除的元素。
14.In [36]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]# 删除索引为1 的数据lisi
15.In [37]: name_list.pop(1)
16.Out[37]: 'lisi'
17.In [38]: name_list
18.Out[38]: ['zhangsan', 'wangwu', 'zhaoliu']
列表名.clear():清空整个列表的元素。
19.In [40]: name_list = ["zhangsan", "lisi", "wangwu", "zhaoliu"]
20.In [41]: name_list.clear()
21.In [42]: name_list
22.Out[42]: []
4)排序
列表名.sort():升序排序从小到大。
23.In [43]: a = [33, 44, 22, 66, 11]
24.In [44]: a.sort()
25.In [45]: a
26.Out[45]: [11, 22, 33, 44, 66]
列表名.sort(reverse=True):降序排序从大到小。
27.In [46]: a = [33, 44, 22, 66, 11]
28.In [47]: a.sort(reverse=True)
29.In [48]: a
30.Out[48]: [66, 44, 33, 22, 11]
列表名.reverse():列表逆序、反转。
31.In [50]: a = [11, 22, 33, 44, 55]
32.In [51]: a.reverse()
33.In [52]: a
34.Out[52]: [55, 44, 33, 22, 11]
5)统计相关
len(列表名):得到列表的长度。
35.In [53]: a = [11, 22, 33, 44, 55]
36.In [54]: len(a)
37.Out[54]: 5
列表名.count(数据):数据在列表中出现的次数。
38.In [56]: a = [11, 22, 11, 33, 11]
39.In [57]: a.count(11)
40.Out[57]: 3
列表名.index(数据):数据在列表中首次出现时的索引,没有查到会报错。
41.In [59]: a = [11, 22, 33, 44, 22]
42.In [60]: a.index(22)
43.Out[60]: 1
if 数据in 列表: 判断列表中是否包含某元素。
44.a = [11, 22, 33, 44 ,55]
45.if 33 in a:
46. print("找到了....")
6)循环遍历
使用while 循环:
1. a = [11, 22, 33, 44, 55]
2.
3. i = 0
4. while i < len(a):
5. print(a[i])
6. i += 1
使用for 循环:
1. a = [11, 22, 33, 44, 55]
2. for i in a:
3. print(i)