1 #dict字典
2 #dict是一种没有顺序的组合数据,数据以键值对的形式出现
3 #一、创建dict
4 #1、创建空dict
5 d = {}
6 print(d)
7 d = dict()
8 print(d)
9 #2、创建带值的dict
10 d = {"one":1, "two":2}
11 print(d)
12 d = dict({"one":1, "two":2}) #传入一个字典型参数
13 print(d)
14 d = dict(one=1, two=2) #传入多个关键字参数
15 print(d)
16 d= dict([("one", 1), ("two", 2)]) #传入一个list,内部嵌套tuple
17 print(d)
18 #二、字典特征,半序列类型,没有切片和索引
19 #字典中的数据,每个都由键值对组成,即kv对;其中key,必须是一个可哈希的值,比如int、string、float、tuple等,但list、set、dict不行
20 #三、字典常见操作
21 d = {"one":1, "two":2}
22 print(d["one"])
23 d["one"] = "eins"
24 print(d)
25 del d["one"] #del(d["one"])
26 print(d)
27 #1、成员检测in、not in
28 if "two" in d:
29 print("key")
30 if 2 in d:
31 print("value")
32 if ("two",2) in d:
33 print("kv")
34 #2、遍历,python2和3区别大,不通用
35 d = {"one":1, "two":2}
36 for k in d:
37 print(k, d[k]) #for循环,直接访问的k为key值,而非一对
38 for k in d.keys():
39 print(k, d[k]) #上述方法的改写,推荐这种写法
40 for v in d.values():
41 print(v) #只访问values值
42 #下面写法在dict中报错
43 # for k,v in d:
44 # print(k,"-",v)
45 #应该改写成如下
46 for k,v in d.items():
47 print(k,"-",v)
48 #3、字典生成式
49 d = {"one":1, "two":2}
50 dd = {k:v for k,v in d.items()}
51 print(dd)
52 dd = {k:v for k,v in d.items() if v % 2 == 0} #加限制条件
53 print(dd)
54 #四、字典相关函数
55 #通用的函数:len、max、min、dict
56 #1、str(dict),返回字典的字符串格式
57 d = {"one":1, "two":2}
58 print(str(d))
59 #五、字典的操作方法
60 #1、clear,清空字典内部数据
61 #2、items,返回字典的键值对组成的元祖格式
62 d = {"one":1, "two":2}
63 i = d.items()
64 print(type(i))
65 print(i)
66 #3、keys,返回字典的键组成的结构
67 k = d.keys()
68 print(type(k))
69 print(k)
70 #4、values,返回一个和keys、items一样的可迭代的结构
71 v = d.values()
72 print(type(v))
73 print(v)
74 #5、get,返回指定键的值,如果没有这个键,则返回None,而不会报错,如果后面填写了第二个参数,则表示,如果找不到,就返回第二个参数设置好的返回值
75 d = {"one":1, "two":2}
76 print(d.get("333",1))
77 #6、fromkeys,使用指定的序列作为字典的键,再跟一个值,作为字典所有键的值
78 l = ["eins", "zewi", "tree"]
79 d = dict.fromkeys(l,"aaa")
80 print(d)
81 '''
82 打印如下:
83 {}
84 {}
85 {'one': 1, 'two': 2}
86 {'one': 1, 'two': 2}
87 {'one': 1, 'two': 2}
88 {'one': 1, 'two': 2}
89 1
90 {'one': 'eins', 'two': 2}
91 {'two': 2}
92 key
93 one 1
94 two 2
95 one 1
96 two 2
97 1
98 2
99 one - 1
100 two - 2
101 {'one': 1, 'two': 2}
102 {'two': 2}
103 {'one': 1, 'two': 2}
104 <class 'dict_items'>
105 dict_items([('one', 1), ('two', 2)])
106 <class 'dict_keys'>
107 dict_keys(['one', 'two'])
108 <class 'dict_values'>
109 dict_values([1, 2])
110 1
111 {'eins': 'aaa', 'zewi': 'aaa', 'tree': 'aaa'}
112 '''