容器类型
一、 通用操作
二、 字符串 str
三、 列表 list
四、 元组 tuper
五、 字典 dict
六、 集合 set
七、 固定集合 frozenset
一、列表
1、定义:由 一系列变量 组成的可变 序列 容器。
2、基础操作:(增删改查)
1)创建列表:[ ],list(可迭代对象)
可迭代对象:http://t.csdn.cn/y0DLT
http://t.csdn.cn/F2di3
2)添加元素:insert / append / estend
insert:插入(索引/元素 ) 例如:list.insert(2,5)
append:末尾追加
extend:将括号内元素追加原列表
list01 = [1,2,3]
list02 = [4,5]
list01.extend(list02)
print(list01)#output:[1, 2, 3, 4, 5]
3)定位元素:(索引、切片)
索引:list[5]
切片:list[1:1000000]
获取元素:print(list[5])
修改:list[1:1000000] = ["a","b","c"]
4)删除元素:(remove/ del / pop)
remove:删除指定元素。例如:
list = [1,2,3,4,5]
list.remove(2)
print(list) #output:list = [1,3,4,5]
del:删除指定索引元素。 例如:
del list[2]
print(list) #output:list = [1,2,4,5]
pop:删除列表最后一个元素。例如:
list.pop()
print(list) #output:list = [1,2,3,4]
5)遍历元素:for item in list: print(item)
# 正着
for i in range(len(list))
print(i)
# 跳着
for i in range(0,len(list),2)
print(i)
# 倒着
for i in range(len(list)-1,-1,-1)
print(i)
6)补充:列表排序
list.sort() #从大到小排序;若要从大到小排序(reverse默认Flase改为True)
list.sort(reverse = True)#从小到大排序
reverse() #将列表中的元素反序,等同[::-1]
3、深拷贝和浅拷贝:
浅拷贝:在复制过程中只复制一层变量,不会复制深层变量绑定的对象的过程
(详解画内存图笔记:p31)
深拷贝:复制整个依赖的变量
(详解画内存图笔记:p32)
4、列表vs字符串:
1)列表和字符串都是序列,元素之间有先后顺序关系
2)字符串是不可变序列,列表是可变序列
3)字符串中每个元素只能存储字符,列表可以存储任意类型
4)列表和字符串都是可迭代对象
5)函数:
将多个字符串拼接为一个:
result = "连接符".join(列表)
将一个字符串拆分为多个:
列表 = “a-b-c-d”.split("连接符")
list01 = ["a", "b", "c"]
result = "-".join(list01)
print(result) #output:a-b-c
list02 = "a-b-c".split("-")
print(list02) #output:['a', 'b', 'c']
5、列表推导式:
1)语法:[对变量的操作 for 变量名 in 可迭代对象]
list = []
for item in list:
if item % 2 == 0:
list.append(item**2)
print(list)
list = [item**2 for item in list if item % 2 == 0]
(1)定义:使用简易的方法将可迭代对象转换为列表。
(2)语法:
变量 = [表达式 for 变量 in 可迭代对象]
变量 = [表达式 for 变量 in 可迭代对象 if 条件]
(3)说明:如果if真值表达式的bool值为Flase,则可迭代对象生成的数据将被丢弃。
6、列表推导式嵌套:
1)语法:[表达式 for 变量1 in 可迭代对象1 for 变量2 可迭代对象2]
# 传统写法
result = []
for r in ["a", "b", "c"]:
for c in ["A", "B", "C"]:
result.append(r + c)
print(result) #output:['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']
# 推导式写法
result = [r + c for r in ["a", "b", "c"] for c in ["A", "B", "C"]]
print(result) #output:['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']