系列文章目录
一、字典(dict)常用操作
-
定义:
字典在 python 3.6版本之前是无序的,3.6及之后版本是有序的,插入时的顺序就是保存顺序。字典的每一个元素由两部分构成,形如
key: value
,被称为键值对 。冒号前面的是键,必须使用不可变类型,且必须唯一;冒号后面的是值,没有类型的限制。
d = {'name': 'hugh', 'age': 17} # 使用花括号,元素内部用冒号隔开,元素之间用逗号隔开
-
类型转换:
info = [['name', 'hugh'], ('age', 18), ['gender', 'male']] # 必须是两个值一组的形式 d = dict(info) print(d) # 打印:{'name': 'hugh', 'age': 18, 'gender': 'male'}
-
读取单个值:
d = {'name': 'hugh', 'age': 17} print(d['age']) # 打印:17
-
读取所有值-
values()
:d = {'name': 'hugh', 'age': 17} l = list(d.values()) # 需要转换类型 print(l) # 打印:['hugh', 17]
-
读取所有的键-
keys()
:d = {'name': 'hugh', 'age': 17} l = list(d.keys()) # 需要转换类型 print(l) # 打印:['name', 'age']
-
读取键值对-
items()
:d = {'name': 'hugh', 'age': 17} l = list(d.items()) # 需要转换类型 print(l) # 打印:[('name', 'hugh'), ('age', 17)]
-
修改:
d = {'name': 'hugh', 'age': 17} d['age'] = 18 # key已经存在,则修改 print(d) # 打印:{'name': 'hugh', 'age': 18} d['gender'] = 'male' # key不存在,则追加新的键值对 print(d) # 打印:{'name': 'hugh', 'age': 18, 'gender': 'male'}
-
统计长度-
len()
:返回键值对的数量。 -
删除-
pop()
:括号内写要删除元素的key,并会返回被删除元素的value。 -
随机删除-
popitem()
:随机删除一个元素并返回一个元组,元组包含的是被删除元素的 key和value。 -
清空字典-
clear()
:清空字典内的元素,不删除字典。没有返回值。 -
更新字典-
update()
:d = {'name': 'hugh', 'age': 17} d.update({'name':'tom'}) # 存在则更新,不存在则追加 print(d) # 打印:{'name': 'tom', 'age': 17}
-
按照key取值-
get()
:与
d['age']
的方式不同,在键不存在的情况下,方括号的方式会报错;而get不会报错,会返回None。d = {'name': 'hugh', 'age': 17} # print(d['gender']) 会直接报错 print(d.get('gender')) # 打印:None
-
给不存在的key设置默认值-
setdefault()
:d = {'name': 'hugh', 'age': 17} d.setdefault('name', 'tom') # key存在,不做任何操作,只返回key对应的已经存在的value print(d) # 打印:{'name': 'hugh', 'age': 17} d.setdefault('gender', 'male') # key不存在,会追加,然后返回key对应的value print(d) # 打印:{'name': 'hugh', 'age': 17, 'gender': 'male'}
-
循环遍历
二、集合(set)常用操作
-
定义:
集合内的元素不会重复,重复的元素会被自动清除,而且必须是不可变类型。
集合常被用来对元素去重,它不适合单个元素的操作,而适合集合间的运算。
集合内的元素是无序的。
s = {1, 2, 1, 3} # 还是使用花括号,但元素不是键值对 print(s) # 打印:{1, 2, 3};重复的1被去除了
-
类型转换:
s = set('aabbccdd') # 单个字符会被看作一个元素 print(s) # 打印:{'a', 'd', 'c', 'b'};集合无序
-
关系运算:
-
交:
使用 & 运算符,获取两个集合共有的元素
s1 = {1, 2, 3, 4} s2 = {3, 4, 5, 6} s1 & s2 # 返回:{3, 4}
-
并:
使用 | 运算符,获取两个集合所有的元素
s1 = {1, 2, 3, 4} s2 = {3, 4, 5, 6} s1 | s2 # 返回:{1, 2, 3, 4, 5, 6}
-
差:
使用 - 运算符,获取s1独有的元素,即从s1的元素中去除s2也包含的元素。要注意先后顺序。
s1 = {1, 2, 3, 4} s2 = {3, 4, 5, 6} s1 - s2 # 返回:{1, 2}
-
对称差:
使用 ^ 运算符,从两个集合中去除共同的元素,再将剩余元素返回。
s1 = {1, 2, 3, 4} s2 = {3, 4, 5, 6} s1 ^ s2 # 返回:{1, 2, 5, 6}
-
-
比较运算:
不再看元素的关系,而是看两个集合的包含关系。s1包含s2,则 s1 > s2 。
-
统计长度-
len()
-
更新集合-
update()
:括号内写入新的集合 -
删除元素-
discard()
:括号内写要删除的元素,元素不存在则什么都不做 -
删除元素-
pop()
-
添加元素-
add()
-
循环遍历
三、占位符
-
含义:
仅仅是占住一个固定的位置,而不做任何操作,等着你之后往该位置添加内容。
-
语法:
使用 pass 或 … ,
if score <= 59: pass # 不会做任何操作,等你确定要写什么内容的时候,就将它删除,再写入内容 ... # 等价于 pass else: # 什么都不写会报错