Python元组、列表、字典、集合
元组
1
2
3
4
5
6
7
8
9
10# 元组和列表很像,用来保存多个数据
# 使用一对小括号(),来表示一个元组
# 元组是不可变数据类型,因此只能进行查,不能进行增删改
# 元组是一个有序的存储数据的容器,可以通过下标来获取元素
# 元组也可以遍历
index # 通过下标获取元素
count # 用来统计指定元素的个数
x=(1,) #表示只有一个元素的元组
tuple # 实现可迭代对象转化为元组(列表list也可以这样用)列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
611. 当我们保存多个数据时可以使用列表(列表近似于C语言的数组)
2. 使用[]表示一个列表,列表里的每一个数据表示元素,中间用逗号隔开
['xiaoming',18,'河南'] # 即表示一个列表,数据类型可以不同
3. 可以使用list(可迭代对象),将可迭代对象转换成一个列表
eg:
x=list(('张三','李四','王五'))
print(x) # 打印结果:['张三', '李四', '王五']
4. 可以通过下标获取修改列表即对列表进行切片
注:A[m:n] # 例如在对a进行切片时,从下标m开始,不包含下标为n的
5. 增加列表元素
append # 在列表末尾加一个元素
insert # 在指定位置插入元素
extend # 将可迭代对象添加到末尾
6. 删除列表元素
remove # 删除列表指定元素
clear # 清空列表
del #删除一个列表元素
pop #移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7. 查询列表元素
index # 返回指定元素下标,不存在会报错
count # 返回指定元素的个数
8. 修改元素
用下标定位到元素,直接赋值
9. 调用列表的sort方法进行排序
顺序排序:默认循序排序
逆序排序:x.sort(reverse=True)
10. 内置函数sorted排序
新生成一个列表
# 注:sort排序是改变原列表的序列,sorted新生成一个列表
11. 列表逆序
reverse:用函数
x.[::-1]:用切片法
12. 复制列表
y=x # x,y指向了同一个内存地址,会相互影响
copy # 新列表和原列表数据相同,内存地址不同,不会相互影响
13. 使用for...in对列表进行循环遍历时,尽量不要对列表进行删除操作
14. 列表的嵌套
[1,2,[3,4],[4,5,6]] # 列表可以嵌套使用
15. 带下标进行for...in循环(一般用while)
for i,room in enumerate(rooms) # enumerate是关键字
16. 列表推导式
# 用列表推导式创建一个列表,产生列表条件简单的时候使用
nums=[i for i in range(10)] # 产生0-9,这10个数据的列表
17. 列表合并
extend # 将两个列表合并成一个列表字典
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55# 字典里的数据都是以键值对的形式保存的
# key,value之间使用冒号连接,多个键值对之间使用逗号连接
# key是不允许重复的,重复了后一个会覆盖前一个
# key只能是不可变数据类型,而value可以是任意数据类型
# 1.查找数据(因为字典是无序的数据类型,所以只能用key来查找值)
x['key'] # 查找不到会报错
x.get['key'] # 查找不到会默认返回None
x.get['key',default] # 查找不到返回default
# 2.修改和删除(若存在key则修改,不存在则删除)
x['key']=value
# 3.删除
pop('key') # 删除并返回,否则返回默认值
pop('key',default) # 删除并返回,否则返回default
popitem() # 返回并删除字典中的最后一对键和值
clear() # 清空字典
del x['key'] # 直接删除,无返回值
4.合并
A.update(B) # A,B合并成一个字典,并赋值给A
5.循环
方法一:直接for...in循环遍历字典
for k in x: # for...in循环遍历获取的是key
print(x,'=',x[k])
方法二:获取所有的key,再由key获取value
for k in x.keys():
print(x,'=',x[k])
# 一般不用这种方法,和方法一几乎相同,多此一举
方法三:获取所有的value
for v in x.values():
print(v)
方法四:拆包获取key,value
for k,v in x.items():
print(k,'=',v)
# 常用方法一和四
6. 交换key和value的位置
方法一:
x1={'name':'xiaoming'}
x2={}
for k,v in x1.items():
x2[v]=k
方法二:字典推导式
x={'name':'xiaoming'}
x1={v:k for k,v in x.items() }
print(x1)
7.字典推导式
x1={v:k for k,v in x.items() }集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31# 集合是一个不重复的无序的数据类型
# 集合可以用{}或set表示
# {}有两种意思:字典、集合;当里面的数据不是键值对时表示字典
# 字典中不允许有重复元素,当有重复元素时会自动去重
1.增加元素
add() # 增加一个元素
2.清空集合
clear() # 清空集合
set() #表示空集合
{} # 表示空列表
3. 删除元素
pop # 随机删除一个
remove # 指定删除一个,若删除的元素不存在则会报错
4. 合并
union # 两个集合合并在一起,生成一个新的集合
A.update(B) # 将B拼接在A里
# 被合并的那个是可迭代对象即可
5. 集合支持很多运算符(但不支持加法)
A-B # A与B的差集,就是去掉A中,B中有的元素
A&b # A与B的交集
A|B #A与B的并集
A^B #A和B差集的并集(即去掉AB中共有的元素,把其余的合并在一起)
6. 特殊情况
# 当列表转化为集合,如果是数字会去重且自动按升序排序元组、列表、字典的区别
1
2
3
4
5
6
7
8
9
10
11
12
131.元组(Tuple)
# (),有序,元素任意,元素不可变
2.列表(List)
# [],有序,元素任意,元素可变
# 与C语言的数组相似,不同的是C语言的数据类型要相同,list可以不同
3.字典(Dictionary)
# {},无序,元素任意,元素可变
# 元素键值对存在
# 列表用extend合并,字典用update合并
# 元组和列表可以用加号使两个元组和列表合并成一个,字典不可以