Repository navigation
Expand file tree
/
Copy pathpython-数据类型-Dictionaries.py
More file actions
138 lines (105 loc) · 3.49 KB
/
Copy pathpython-数据类型-Dictionaries.py
File metadata and controls
138 lines (105 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
----------------------------
python-Dictionaries |
----------------------------
# 字典,有点像是JAVA的map,或者是JS的JSON
# key值不能重复,会产生覆盖的问题
# key值的数据类型
* 要保证hash的正确性,作为key的对象就不能变。
* 运行作为Key的数据类型
基本数据类型,frozenset,tuple
* 不允许作为Key的数据类型
dict,list,set
# 如果访问的key不存在,会抛出异常
# 定义
test = {99:59,"Litch":55,"Rocco":[1,2,3]}
test = dict({1:2,3:4})
test = dict([(1,2),(3,4)])
* 函数也可以传递数组类型,要求每个元素具备两个元素,第一个作k,第二个做v
test = dict(name='Kevin',age=23)
* 可以使用命名参数(可以有N多个),来进行初始化定义
# 设置元素
test[55] = "哈哈哈"
# 访问元素
test['Kevin']
test[99]
# 判断元素是否存在
[99] in test //True
['21'] in test //False
# 删除字典元素,如果key不存在,抛出异常
del test['Litch']
# 删除字典
del test
# 获取字段的元素长度
len(test)
# 使用 for in 迭代元素
dic = {'name':'KevinBlandy',66:99}
for key in dic:
print(key)
print(dic.get(key))
for kv in dic.items():
print(kv[0]) //key
print(kv[1]) //value
for key,value in dic.items():
print(key)
print(value)
* items 遍历效率不高,建议用第一种
# 字典内涵
dic = {key:value for key,value in {'name':'Kevin','age':23}.items()}
----------------------------
python-Dictionaries-方法 |
----------------------------
get(key,[defaultValue])
* 根据指定key获取数据
* 如果key不存在,返回 None,如果指定了 defaultValue,那么在数据为 None 的时候返回该值
setdefault(key, defaultValue)
* 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
* 如果key存在,则不会进行任何操作
* 该方法会返回 key 的 value
pop(key,[delfaultValue])
* 删除指定key的元素,并且返回 value
* 如果数据不存在,抛出异常
* 也可以指定默认值,如果key在字典中不存在,就会返回默认值
popitem()
* 返回并且移除任意的一个 item(元组),如果字典是空的,抛出异常
clear();
* 清空字典
copy();
* 返回一个浅复制
items();
* 返回一个可遍历的元组
* 其实就是把每个 Entry 都转换为一个元组
* demo
for x in hashMap.items():
key = x[0]
value = x[1]
for k,v in hashMap.items():
key = k
value = v
keys();
* 以列表返回所有的key
* 返回的数据类型是 dict_keys,本身是可遍历数据类型
* 可以转换为 list 后进行其他的操作
* demo
for x in hashMap.keys():
key = x
value = hashMap[key]
values()
* 以列表返回字典中的所有值
* 返回的数据类型是 dict_values,本身是可遍历数据类型
* 可以转换为 list 后进行其他的操作
update(dict2)
* 把字典dict2的键/值对更新到 this dict里
----------------------------
python-静态方法 |
----------------------------
dict.fromkeys(keys,value);
* 返回一个字典
* keys 是所有的 key,value,是所有 key 的value
* demo
dic = dict.fromkeys([1,2,3],'value')
print(dic) //{1: 'value', 2: 'value', 3: 'value'}
* 如果 value 是一个数组,那么任意成员的数组元素变化,都会更新到其他的 key
* demo
dic = dict.fromkeys([1,2,3],[1,2]);
dic[1][0] = 5
print(dic) //{1: [5, 2], 2: [5, 2], 3: [5, 2]}