首页 > 编程语言 > 详细

Python数据结构

时间:2019-04-18 00:43:44      阅读:184      评论:0      收藏:0      [点我收藏+]

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}

 

Python数据结构

原文:https://www.cnblogs.com/yaoze2018/p/10726641.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!