4.1 通用序列操作
4.1.1 索引
4.1.2 切片
(类似于左闭右开区间)
注意元组的表示方式:(3)表示一个数字3;(3,)表示一个元组,里面有且只有一个元素3
获取非连续序列(默认情况下步长为“1”,步长参数不支持为“0”,支持负数步长)
x4 = (1,2,3,4,5,6,7,8,9)
print(x4[1::3])
(2, 5, 8)
4.1.3 序列相加
序列和序列之间通过“ + ”连接,连接后的结果还是相同类型的序列,不同类型的序列是不能连接的
4.1.4 序列重复
“ * ” 可以帮我们复制多份序列
4.1.5 成员资格
用“ in ” 运算符,注意只有当元素的类型和值都完全一致,才算包含在序列中如“5” 和“"5"”
print('5' in '1,2,3,4,5')
True
4.1.6 长度、最小值、最大值和求和
len() min() max() sum()
注意sum函数求和的要求是序列的元素必须都是int,由于字符串序列的元素都是字符串,所以sum函数无法对字符串序列求和
4.2 列表
4.2.1 列表更新
一个列表可以存储不同类型的数据(区别于序列相加),并且修改的新元素也不需要和原来的元素类型一致
4.2.2 增加元素
append
无论后面是单个元素还是一个列表,都会把它当成一个新元素追加在原来的列表后面
extend
把新列表拆开追加在原来的列表后面
x1 = [1, 2, 3, 4, 5, 6, 7, 8]
x1.append([9, 10])
print(x1)
x2 = [1, 2, 3, 4, 5, 6, 7, 8]
x2.extend([9, 10])
print(x2)
[1, 2, 3, 4, 5, 6, 7, 8, [9, 10]]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
insert
insert方法需要传递两个参数,第一个参数表示要插入的新元素的位置, 第二个参数表示要插入的元素
insert 和 append 一样,一次只能新增一个元素
x3 = [1, 2, 3, 4, 5]
x3.insert(2, 'hello')
print(x3)
[1, 2, 'hello', 3, 4, 5]
4.2.3 删除元素
pop
pop函数可以删除指定位置的与元素(删一个),并且把这个元素作为返回值返回,如果不指定位置则默认选择最后一个元素
x4 = [1, 2, 3, 4, 5]
r1 = x4.pop()
print(r1)
print(x4)
r2 = x4.pop(2)
print(r2)
print(x4)
5
[1, 2, 3, 4]
3
[1, 2, 4]
remove
remove会删除找到的第一个元素(删一个),并且没有返回值
x5 = [1, 5, 3, 4, 5, 5, 5, 5]
x5.remove(5)
print(x5)
[1, 3, 4, 5, 5, 5, 5]
del
x6 = [1, 2, 3, 4, 5, 5, 5, 5]
del x6[2:]
print(x6)
[1, 2]
4.2.4 查找元素
index
index索引出一个位置
x7 = [1, 4, 4, 4, 5, 6, 7]
print('4 index is', x7.index(4))
4 index is 1
4.2.5
reverse
reverse可以反转队列,和 [::-1] 类似。但是reverse方法修改的是原来的队列,并且没有返回值, [::-1] 是临时复制出一个队列来操作,然后把这操作完的队列返回
count
count用于统计某个元素在列表中出现的次数
sort
sort用于对列表进行排列,还可以自定义排序方式
4.3 元组
元组与列表最大区别是列表可以修改、读取、删除,而元组创建后不能修改,不能删除单个元素,但可以删除整个元组
元组的查询速度比列表快
count
index
4.4 字典
字典的每个元素都是由 :和键值对构成的,字典的间必须是唯一、不重复的
字典新增元素和修改元素的语法是一样的。新增元素时可先定义一个空字典
nglish = {
'we': '我们',
'world': '城市',
'company': '公司'
}
english['world'] = '世界'
print(english)
{'we': '我们', 'world': '世界', 'company': '公司'}
english = {}
english['city'] = '城市'
{'city': '城市'}
删除元素时可用 del clear
copy
copy方法类似于列表的[:]语法,相当于完整地复制了一份新的副本(注意copy进行的是浅拷贝,如果字典的元素值也是字典,那么copy只会影响最外层字典,元素内部还是引用)
fromkeys
fromkeys用于创建一个新字典
seq = ('name', 'age', 'class')
student1 = dict.fromkeys(seq)
print('默认', student1)
student2 = dict.fromkeys(seq, 1)
print('指定', student2)
默认 {'name': None, 'age': None, 'class': None}
指定 {'name': 1, 'age': 1, 'class': 1}
get
get不会因为键值对不存在而像使用索引获取键值对那样输出错误信息
print('we', english1['we'])
print('world', english1.get('world'))
print('city', english1.get('city'))
print('city', english1.get('city', '未知'))
we 我们
world 世界
city None
city 未知
keys values items
keys方法返回一个列表,里面包含了字典的所有键(该方法常用来判断一个键是否存在于字典中,与 in 组合使用)
values方法返回一个列表,里面包含了字典的所有值
items方法返回一个(类似)列表,里面包含了所有键的列表和所有值的列表
english2 = {
'we': '我们',
'world': '世界',
'company': '公司'
}
print(english2.keys())
print('we' in english2.keys())
print('city' in english2.keys())
dict_keys(['we', 'world', 'company'])
True
False
print(english2.items())
dict_items([('we', '我们'), ('world', '世界'), ('company', '公司')])
由于字典不能直接用于for循环中,我们可以用items来遍历字典
english3 = {
'we': '我们',
'world': '世界',
'company': '公司'
}
for k, v in english3.items() :
print(k, '=>', v)
we => 我们
world => 世界
company => 公司