Python内置了 几种数据结构,元组,列表 字典
1.元组
元组可以由不同的元素组成,每个元素也可以是不同的数据类型,字符串,数字或者元组,所有元素通过圆括号包含起来,并通过逗号隔开:
实例代码如下:
变量名 = (元素1,元素2,...) a = (1,2,"d",(3,"d"))
t = (1,2,[0,8,9,3],5)
print(t[2])
print(t[2][1])
#运行结果
[0,8,9,3]
8
注意:元组有个特点是一旦被创建元素就不能修改,不能删除,可以将整个元组一下删除.可以理解为元素的元素为只读.当元组只有一个元素时,第一个元素后面跟上逗号",",元组的元素以索引编号.元组可以合并(L = L1+L2,L2的元素排在L1后)
实例代码如下:
1 a = (1,2,"d",(1,"dd")) 2 print(a[0]) 3 print(a[-1]) 4 print(a[3])
5 print(a[3][0])
6 print(a[-1][0])
7 print(a[-1][-1])
代码说明:
1.定义一个元组a,元组a包括四个元素,第一个和第二个是数字,第三个是字符串,第四个是元组.
2.打印元组索引为0的值
3.打印元组的倒数第一个元素,该元组中倒数第一个元素即元组(1,"dd")
4.打印元组的索引为3的元素,即(1,"dd")
5.打印元组的索引为3的元素中的索引为0的元素
6.打印元组中倒数第一个元素中索引为0的元素
7.打印元组中倒数第一个元素倒数第1个的元素
#运行结果
1 1 2 (1, ‘dd‘) 3 (1, ‘dd‘) 4 1 5 1 6 dd
上面介绍了如何读取单个元素,那么如果要读取多个元素呢?只需要用"元组[m:n]"的方式就可以读取了,m和n就是所以的序号,代表读取元组从m到n的元素,但不包括n这个元素
1 a = (1,2,"d",(1,"dd")) 2 print(a[0:2]) #打印元组索引为0至索引为1的元素 3 print(a[1:-1]) #打印元组索引为1到倒数第1个元素,但不包含倒数第1个元素 4 print(a[2:4]) #打印元组索引为2到索引为3的元素 5 6 #运行结果: 7 (1, 2) 8 (2, ‘d‘) 9 (‘d‘, (1, ‘dd‘))
元组的元素不能修改,也不能删除,可以将元组整个删除.
1 a = (1,2,"d",(1,"dd")) 2 print(a) 3 del a 4 print(a) 5 6 #运行结果: 7 (1, 2, ‘d‘, (1, ‘dd‘)) 8 Traceback (most recent call last): 9 File "D:/PycharmProjects/MyScripts/python函数的定义.py", line 4, in <module> 10 print(a) 11 NameError: name ‘a‘ is not defined
2.列表
列表和元组很相似,主要差别在于列表是可以增删改的,而元组是不可以的.列表的元素由[]括起来,元素间用逗号隔开.
列表中的元素可以是数字,字符串,列表,元组
1 变量名 = [元素1,元素2,......]
2 a = [1,2,3,‘a‘,‘abc‘,‘dnf‘]
增删改的相关语法:
list.append(元素) :调用列表的添加方法加入元素,并将元素添加到列表最后
list.insert(索引位置,元素):调用列表的插入方法加入元素到指定的索引位置,之后的元素索引位置依次向后瞬移
list.remove(元素):调用列表的移除方法删除元素,之后的元素索引位置依次向前瞬移
list[n]=元素 将列表中索引为n的元素赋值新元素
del list[n] 删除列表中的元素
del list 也可以删除列表
列表的合并:
两种方法:
1.list1.extend(list2) 将list2中的元素扩展到list1中,并将list2的元素放到list1元素的后面
2.list1 = list1+list2 直接通过列表相加的方法并重新赋值到列表1中
实例代码如下:
1 a = [1,2,3,‘a‘,‘abc‘,‘dnf‘]
2 a.append(235)
3 print(a)
4 a.remove(235)
5 print(a)
6 a.insert(2,4)
7 print(a)
8 a.insert(6,‘xyz‘)
9 print(a)
10 a.insert(8,‘888‘)
11 print(a)
12 a[-1] = ‘999‘
13 print(a)
14 print(a[3:7])
15 print(a[0:-1])
16 #运行结果:
17 [1, 2, 3, ‘a‘, ‘abc‘, ‘dnf‘, 235]
18 [1, 2, 3, ‘a‘, ‘abc‘, ‘dnf‘]
19 [1, 2, 4, 3, ‘a‘, ‘abc‘, ‘dnf‘]
20 [1, 2, 4, 3, ‘a‘, ‘abc‘, ‘xyz‘, ‘dnf‘]
21 [1, 2, 4, 3, ‘a‘, ‘abc‘, ‘xyz‘, ‘dnf‘, ‘888‘]
22 [1, 2, 4, 3, ‘a‘, ‘abc‘, ‘xyz‘, ‘dnf‘, ‘999‘]
23 [3, ‘a‘, ‘abc‘, ‘xyz‘]
24 [1, 2, 4, 3, ‘a‘, ‘abc‘, ‘xyz‘, ‘dnf‘]
1 1 a = [1,2,3,(‘a‘,‘b‘,‘c‘)] 2 2 b = [4,5,6,[‘x‘,‘y‘,‘z‘]] 3 3 c = [444,555,666,(7,8,9)] 4 4 a.extend(b) 5 5 print(a) 6 6 c = b+c 7 7 print(c) 8 8 9 9 #运行结果 10 10 [1, 2, 3, (‘a‘, ‘b‘, ‘c‘), 4, 5, 6, [‘x‘, ‘y‘, ‘z‘]] 11 11 [4, 5, 6, [‘x‘, ‘y‘, ‘z‘], 444, 555, 666, (7, 8, 9)]
3.字典
字典由一系列"键""值"对组成,每一组可以理解为一个元素,并通过{}包含起来,创建字典语法格式如下
dictionary = {键1:值1,键2:值2,键3:值3,.......}
字典也有索引的概念,与元组和列表不同的是:字典不是通过数字而是通过键来作为索引的
1 m = {"a":1,"b":2,"c":3,"d":"nba"} 2 print(m["a"]) 3 print(m["d"]) 4 #运行结果 5 1 6 nba
字典的增删改:
字典的增加和修改的语法一样,都是通过给某个键进行对应的赋值,当键对应的值存在时将原值替换为新的赋值,当键不存在时创建一个新的键值对.
1 n = {"a":1,"b":2} 2 n["c"] = 3 3 n["a"] = ‘x‘ 4 print(n) 5 #运行结果 6 {‘a‘: ‘x‘, ‘b‘: 2, ‘c‘: 3}
字典的删除:
1 n = {"a":1,"b":2} 2 del(n["a"]) 3 print(n) 4 z = {"a":1,"b":2} 5 del(z) 6 print(z) 7 #运行结果: 8 D:\Python3.7.2\python.exe D:/PycharmProjects/MyScripts/123.py 9 {‘b‘: 2} 10 Traceback (most recent call last): 11 File "D:/PycharmProjects/MyScripts/123.py", line 6, in <module> 12 print(z) 13 NameError: name ‘z‘ is not defined
字典的拼接:dict1.update(dict2),将字典dict2合并到字典dict1之中,如果dict2中存在与dict1中相同的键,那么该键会被替换成dict2的值.
与列表的合并区别在于,列表可以合并重复的数据并且不会被替代,而字典中如果有重复的键,就会被新的键对应的值所取代
1 # dictionary = {键1:值1,键2:值2,键3:值3,.......} 2 m = {"a":1,"b":2,"c":3,"d":"nba"} 3 m["x"] = 2019 4 m[‘y‘] = ‘abc‘ 5 print(m["x"]) 6 print(m["y"]) 7 m["a"] = 123 8 m["b"] = "HK666" 9 print(m) 10 n = {"a":1,"b":2} 11 y = {"c":3,"d":"nba"} 12 n.update(y) 13 print(n) 14 z = {"a":1,"b":2} 15 del(z["a"]) 16 print(z) 17 x = {"a":1,"b":2} 18 y = {"a":1,"b":2} 19 x.update(y) 20 print(x) 21 #运行结果: 22 2019 23 abc 24 {‘a‘: 123, ‘b‘: ‘HK666‘, ‘c‘: 3, ‘d‘: ‘nba‘, ‘x‘: 2019, ‘y‘: ‘abc‘} 25 {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: ‘nba‘} 26 {‘b‘: 2} 27 {‘a‘: 1, ‘b‘: 2}
原文:https://www.cnblogs.com/yaoze2018/p/10726641.html