浅谈python中的 list、tuple、dict、set
list:
简介:
有序的集合,包含多个元素
数据可以是任意类型
支持索引访问
用[ ]表示,例如a=[ ] 或者 a=list()
访问:
索引访问 a[1] a[2] 当然我们也可以支持负索引a[-1] 正如你想的那些负数就是到着看
切片访问啊 a[1:5:3] [开始:结束:步长]
运算操作:
+ 拼接 将两个list拼接到一起哈,
* 重复 重复多少 [1,2,3,4]*3
In 在不在里面 当然也就有 not in 返回一个true 和 false
迭代 for i in a 支持for循环去查看
函数
len() 有多少个 长度是多少
min() 这是最小值
max() 这是最大值
list() 转化成list
方法:
append(value) 在末尾添加新元素
insert(index,value) 在指定位置插入 超过范围 在末尾插入
extend(list) 在末尾你 批量添加
remove(value) 从左到右 删除第一个
pop([index]) pop 删除最后一个 index 索引 可以要 有返回值的
index(value) 从左到右查找 第一个索引
count(value) 查询某个元素 有几个
reverse(list) list的 反转
sort() 排序
clear 清楚所有的元素
copy 复制出来一个新的但会新的地址
del 直接删除 从内存干掉 删除某一元素 或者 list
列表生成式:
【exp for iter_var initerable 】
Eg: 【i*I for i in range(1,11)】
[i for i in range(1,11) if i%2==0] 加个判断
[i*j for i in rang(1,10)for j in (1,i+1)] 循环嵌套
元组 tuple
定义:
1.集合 支持索引访问
2.可以是任意的数据类型
3.定义的时候 用() 表示 a=() a=tuple()
4.元组中的元素 不能直接进行修改 a=(1,2,3.4,"asd")
运算操作:
+ 拼接 将两个list拼接到一起哈,
* 重复 重复多少 [1,2,3,4]*3
In 在不在里面 当然也就有 not in 返回一个true 和 false
迭代 for i in a 支持for循环去查看
支持切片访问 a[1:3] 当然还有步长呢
注意:当我们的元组中只有一个内容的时候 就不是元组类型了。
函数:
len() 长度 接受一个可迭代的数据类型
max() 最大值
min() 最小值
count 有几个
index (index,start,stop) 返回值的索引 【搜索范围】
注意:元组元素不可以直接进行修改,想要修改的话 先转成list 然后 在转成元组
字典 dict (键值)
特点:
1.无序 不支持索引
2.每一个元素包括两部分 键和值
3.用大括号表示数据类型 dt={} dt={"ywx":12,"yy":23}
4.可以存放任意的数据类型(列表不行,键是不可变数据类型,值是任意数据类型)
注意:键名重复的时候 就会 覆盖 最后那个为标准
遍历:
dt[“键名”] 返回这个键的值 键不存在 就 报错
for i in dt:
print(i) 元组
for i in dt.keys()
print(i) 键
for i in dt.values()
print(i) 值
方法:
clear() 删除字典内所有元素
copy() 返回一个字典的浅复制
values() 以列表返回字典中的所有值
keys() 以列表返回一个字典所有的键
items() 以列表返回可遍历的元组数据
for k ,v in dt.items()
print(k,v)
b.unpate(a) 将a的键/值更新到b中去
dt【1】=2 如果键存在 就修改,就不存在就 添加
pop(key) 删除键的值
popitem() 随机删除一个元组
get(key,default=Node) 返回键的值 如果不存在就返回 default
fromkeys (seq,val) 创建一个新字典,以seq为键,val为值
集合 set:
1. 无序集合 不支持索引访问
2. 集合中的元素不允许出现重复元素 可以帮助去重了哈
3. 集合中的元素必须是不可变数据类型
4. 集合用大括号表示 {} 或者是 set()
不可以直接 a={} 类型是 dict
函数:
len min max 函数均可以使用的哈
in not in
不支持 + * 运算
支持迭代 for i in a
add 添加
remove 删除
pop 随机删除
修改(删除 添加)
& 交集 | 并集 - 补集