1.字典
字典是Python唯一内置的映射类型, 字典表示一个任意对象的集合, 这些对象通过键进行索引, 它的键几乎是任意类型, 它必须是不可变的数据类型, 如字符串, 整型, 元组等. 字典在Python中属于散列类型, 是可变数据类型.在操作字典时可以使用键索引运算符 : dic[key]
2.字典的方法
操作分类 | 操作 | 描述 |
---|---|---|
增操作 | dic[key] = value | 字典中没有key则添加键值对 字典中有key则修改其对应的值 |
dic.setdefault(key, value) | 设置一个key对应的键值对 | |
dic.fromkeys(s, value) | 创建一个字典 字典的键分别是序列中的元素 每个键的值都是value | |
删操作 | dic.pop(key) | 根据给定的键删除这个键值对 |
dic.popitem() | python36中删除最后一个键值对 python35及以下随机删除 | |
del dic[key] | 指定键来删除键值对 | |
dic.clear() | 清空字典中的所有键值对 | |
改操作 | dic[key] = value | 给指定的键赋值, 如果这个键不存在则创建 |
dic.updata[d] | 将字典d的所有键值对跟新到dic中, 如果d中的键在dic中存在, 则更新其值, 如果不存在则直接添加 | |
查操作 | dic[key] | 获取指定键的值(key不存在时抛出异常) |
dic.get(key[,value]) | 获取指定键的值, 如果指定的键不存在, 不会报错, 会返回空或默认值value | |
dic.keys() | 获取字典的所有键, 返回值类似于列表, 可迭代 | |
dic.values() | 获取字典的所有值, 返回值类似于列表, 可迭代 | |
dic.items() | 获取字典的所有键值对,返回值类似于列表, 列表的元素由元组组成 元组第一个元素是键, 第二个元素是键对应的值 | |
dic.has_key(key) | 判断字典中是否存在指定的键, 返回bool值(python3废除了, 用in成员运算符代替) |
1 # 创建一个字典
2 dic ={"a":1,"b":2,"c":3,"d":4}
3 # 为字典增加一个键值对: "e": 5
4 dic['e']=5
5 print(dic)# 结果为: {"a": 1, "b" :2, "c": 3, "d": 4, 'e': 5}
6 # 为字典增加一个键值对: "f": 6
7 dic.setdefault('f',6)
8 print(dic)# 结果为: {"a": 1, "b" :2, "c": 3, "d": 4, 'e': 5, 'f': 6}
9 # 创建一个字典dic2, 键是列表lst=["you", "me", "him"]中的元素, 每个键对应的值都是0
10 dic2 ={}
11 dic2.fromkeys(['you','me','him'],0)
12 print(dic2)# 结果为: {'you': 0, 'me': 0, 'him':0}
13 # 删除dic一个键值对: "e":5
14 dic.pop('e')
15 print(dic)# 结果为: {"a": 1, "b" :2, "c": 3, "d": 4, 'f': 6}
16 # 删除dic的最后一个键值对: 'f':6
17 dic.popitem()
18 print(dic)# 结果为: {"a": 1, "b" :2, "c": 3, "d": 4}
19 # 删除字典dic2中的键值对: "me":0
20 del dic2['me']
21 print dic2 # 结果为: {'you': 0, 'him':0}
22 # 清空dic2中的所有键值对
23 dic2.clear()
24 print(dic)# 结果为: {}
25 # 给dic的键'd'赋值为666
26 dic['d']=666
27 print(dic)# 结果为: {"a": 1, "b" :2, "c": 3, "d": 666}
28 #将字典{'x': 110, 'y': 114, 'z': 120}更新到字典dic中
29 d ={'x':110,'y':114,'z':120}
30 dic.updata(d)
31 print(dic)# 结果为 {"a": 1, "b" :2, "c": 3, "d": 666, 'x': 110, 'y': 114, 'z': 120}
32 # 获取dic中键'a'对应的值
33 print(dic['a'])# 结果为: 1
34 print(dic.get('a'))# 结果为: 1
35 # 获取dic的所有键
36 print(dic.keys)# 结果为: dict_keys(['a', 'b', 'c', 'd', 'x', 'y', 'z'])
37 # 获取dic的所有值
38 print(dic.values())# 结果为:dict_values([1, 2, 3, 666, 110, 114, 120])
39 # 获取dic的所有键
40 print(dic.items())# 结果为: dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 666), ('x', 110), ('y', 114), ('z', 120)])
3.集合
集合是不同元素的无序集合, 与序列不同, 集合不提供索引或切片操作, 也不像字典提供键进行索引. 集合有() 表示.集合分为两种:set集合是可变的集合, frozenset是不可变的集合. 无论哪种集合, 集合中的元素必须是不可变的数据类型.
4.集合的操作
(1)可变集合与不可变集合通用操作
项目 | 描述 |
---|---|
s.different(t) | 差集, 返回所有在s中, 不在t中的项 |
s.intersection(t) | 交集, 返回s与t共有的元素 |
s.isdisjoint(t) | 如果s和t没有相同项则返回True |
s.issubset(t) | 如果s是t的子集, 则返回True |
s.issuperset(t) | 如果s是t的一个超集, 返回True |
s.union(t) | 并集, 返回所有s和t的元素 |
(2).可变集合专有方法(set)
项目 | 描述 |
---|---|
s.add(itme) | 将item添加到s中, 如果item存在, 则无效果 |
s.clear() | 删除s中的所有元素 |
s.pop() | 随机删除s中的某个元素, 并返回该元素 |
s.remove(item) | 删除s中的指定元素, 如果item不存在, 则抛出KeyError异常 |
s.update() | 将t中的元素添加到s中, t需要可迭代 |