内建结构-list-dict-set
- 关于列表的函数
- append() => list.append(value) ,在列表的最后插入元素
- insert() => list.insert(n,value) , 在第n+1个元素前面插入value
- del() => del list[n] , 删除第n+1个元素
- pop() => value = list.pop() value为拿出的元素, 把最后一个取出来(删除)
- remove() list.remove(value),将列表中的某值删除(要删除的值必须存在于列表中)
- clear() => list.clear() 清空列表
- reverse() => list.reverse() 翻转列表内容,也可以用分片的方法
- extend() => 扩展列表,两个列表,把一个直接拼接到另一上 a.extend(b) ,将b拼接到a上
- count() => list.count(value) 查找列表中指定元素的个数
- copy() => b = a.copy() 将 a copy一份并指向b (浅拷贝)
深拷贝需要使用特定工具:
2.元组 tuple - 元祖的元素不能修改,元组没有增删改的操作.
1)元祖的创建:tuple = () / tuple = (1,2,3,...) / tuple = 1,2,3
2) 关于元组的函数
—cmp(tup1,tup2): 比较两个元组元素
—len(tup): 返回元组中元素的个数
—max(tup): 返回元组中元素最大的值
—min(tup): 返回元组中元素最小的值
—tuple(seq): 将列表转化为元组
—tuple.index(obj):从元组中找出某个值第一个匹配项的索引值
—tuple.count(obj): 统计某个元素在元组中出现的次数
3) 元组变量交换法
# 将变量a与b的值进行交换 a = 1 b = 2 a, b = b, a # java风格写法 c = a a = b b = c
4) 遍历(for循环)
# 单层元组的遍历 tuple = (1,2,'a',True) for i in tuple: print(i) # 多层元组的遍历 tuple = ((1,2,3), (3,4,5), (5,6,7)) for k, m, n in tuple: print(k,m,n)
3. 集合(set) ,用大括号表示,集合中的元素不能重复
1) 无序性, 唯一性
2) 定义: s = set() / s = {1,2,3} 注意大括号中一定要有值,否则定义的就是一个dict
3) 集合没有索引,不能分片,可以过滤重复项,集合内的数据必须是可哈希的
4) 集合的序列操作
(1) 成员检测
s = {1, 2, 3, 4, 5} print(2 in s)
5) 集合的遍历(for)
s = {(1, 2, 3), (1, 2, 3), (1, 2, 3)} for k, m, n : print(k, m, n)
6) 用集合创建集合
s = {1,2,3,4} ss = {i for i in s if i%2 == 0} print(ss)
7) 关于集合的函数
- len max min
- set(obj) 转化为集合
- s.add(value) => 向集合中添加元素
- s.clear() => 清空集合
- b.copy(s) => 拷贝
- s.remove(value) 移除指定的值,如果要移除的值不存在则报错
- s.discard(value) 移除集合中指定的值,如果要移除的值不存在也不报错
- s.pop() 移除一个元素
8) 集合的交并补:
intersection 交集
difference 补集
union 并集
issubset 检查一个元素是否是另一个元素的子集
issuperset 检查一个集合是否为另一个超集
s1 = {1,2,3,4,5} s2 = {3,4,5,6,7,8} s_1 = s1.intersection(s2) s_2 = s1.difference(s2) s_3 = s1.union(s2) s_4 = s1.issubset(s2)
9) 集合的数学运算
交: s1 & s2
补: s1 - s2
并 : s1 | s2
10) 冰冻集合
不能进行任何修改的集合:定义方式 > s = frozenset()
4.字典( dict )
1) 创建: d = {} / d = dict() / d = {'name':'Tom', 'age':13,...} / d = dict({'name':'Tom', 'age':13,...}) / d = dict(name='Tom', age=13,...) / d = dict( [('name','Tom'), ('age',13),...])
2) 字典是序列类型,但是是无序的,没有分片和索引,字典中的key值必须是可hash的,value无所谓
3) 字典的常见操作:
(1) 访问字典中的数据 : d = {'name':'Tom',age:12} => d['name']
(2) 字典的增删改 :
d['name'] = '小明' 修改,
del d['name'] 删除 ,
'key' in dict 成员检测 ,检测的是key
(3) 字典的遍历:
d = {'name':'Tom', 'age':14} for k in d: print(k, d[k]) # name Tom \n age 14 for k in d.keys(): print(k, d[k]) # name Tom \n age 14 for v in d.values(): print(k) #Tom \n 14 for k, v in d.items(): print(k, v) # name Tom \n age 14
4) 字典生成式
d = {'name':'tom', 'age':2} dd = {k:v for k, v in d.items() if v%2 == 0}
5) 字典的相关函数
(1) len() max() min() dict()
(2)str(字典):返回字典的字符串格式
(3) clear() 清空字典
(4) items() 返回字典的键值对组成的元组的格式
(5)keys() 返回字典的key
(6) values() 返回字典的value
(7) get() 根据指定键返回相应的值,可以设置默认值
d = {'name':'tom', age:16} print(d.get('nam')) 找不到返回None # None 找不到返回的值可以自定义 print(d.get('nam',-1)) # -1 print(d.get('name')) 返回结果为键的值 # tom
(8) fromkeys() 使用指定的序列作为键,使用一个值作为字典的所有的值
l = ['name','hobby'] d = dict.fromkeys(l,"dfsaf") print(d) # {'name':'adafd','hobby':'fdsagd'}
本文来自博客园,作者:弟弟救我啊,转载请注明原文链接:https://www.cnblogs.com/Abelte/p/9617596.html