简明python教程之Python 优雅的操作字典(python使用教程)
1704
2022-08-19
Python——字典(python字典添加键和值)
1 ##字典
2 '''
3 字典是一系列键 — 值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。
4 事实上,可将任何Python对象用作字典中的值。
5 '''
6 ##初始化book字典
7 book={'类别':'教育书籍','书名':'python从入门到实践'}
8 print(book)
9 print(book['类别'])
10 print(book['书名'])
11 ##访问字典的值
12 book_name=book['书名']
13 print(book_name)
14 ##添加键值对(字典是动态结构,可随时添加键值对。可依次指定字典名、用方括号括起的键和相关联的值)
15 book['数量']=20
17 print(book)
18 ##创建空字典,并添加键值对
19 phone={}
20 phone['类别']='智能机'
21 phone['名称']='华为'
22 print(phone)
23 ##修改字典中的值
24 phone['名称']='苹果'
25 print(phone)
26 phone={'名称':'小米',}##对字典重新赋值的操作
27 print(phone)
28 ##案例:
29 '''
30 对一个能够以不同速度移动的外星人的位置进行跟踪。为此,我们
31 将存储该外星人的当前速度,并据此确定该外星人将向右移动多远:
32 '''
33 alien={'x_position':0,'y_position':25,'speed':'medium'}
34 print("orignal x_position:"+str(alien['x_position']))
35 # 向右移动外星人
36 # 据外星人当前速度决定将其移动多远
37 if alien['speed']=='slow':
38 x_increment=1
39 elif alien['speed']=='medium':
40 x_increment=2
41 else:
42 x_increment=3
43 # 新位置等于老位置加上增量
44 alien['x_position']+=x_increment
45 print('new x_position:'+str(alien['x_position']))
46
47 ##删除键值对
48 element={'名称':'字典元素','数量':20,'大小':8}
49 print(element)
50 del element['大小']
51 print(element)
52 ##字典的另外一种写法
53 favorite_languages={
54 'jen':'python',
55 'ben':'java',
56 'edward':'ruby',
57 'phil':'c',
58 }
59 ###遍历字典(遍历所有的键 —值对)
60 print('遍历favorite_languages所有的键-值对:')
61 for key,value in favorite_languages.items():
62 print('\nkey:'+key)
63 print('value:'+value+'\n')
64 '''
65 注意,即便遍历字典时,键 — 值对的返回顺序也与存储顺序不同。Python不关心键 — 值对的存
66 储顺序,而只跟踪键和值之间的关联关系。
67 '''
68 ##按顺序遍历字典的所有键
69 print('按顺序遍历字典的所有键:')
70 for key in favorite_languages.keys():
71 print(key)
72 ##按顺序遍历字典的所有值:
73 print("按顺序遍历字典的所有值:")
74 for value in favorite_languages.values():
75 print(value)
76 '''
77 上面这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,
78 最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。集合类似于列表,但每个元素都必须是独一无二的:
79 '''
80 favorite_food={
81 '小明':'红烧肉',
82 '康康':'莲藕',
83 '增哥':'红烧肉',
84 '强哥':'火锅',
85 }
86 print('按顺序遍历字典的所有值,有重复项:')
87 for food in favorite_food.values():
88 print(food)
89 ###使用集合set()剔除重复项
90 print('使用集合set()剔除重复项之后的值:')
91 for food in set(favorite_food.values()):
92 print(food)
93 ##嵌套字典
94 '''
95 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你
96 可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
97 '''
98 my_list1={'color':'red','point':5}
99 my_list2={'color':'green','point':6}
100 my_list3={'color':'black','point':8}
101 '''嵌套字典'''
102 my_list=[my_list1,my_list2,my_list3]
103 print('遍历这个嵌套字典列表:')
104 for my_list_show in my_list:
105 print(my_list_show)
106 '''案例2:'''
107
108 # 创建一个用于存储外星人的空列表
109 print('----------------------------------')
110 print('------------外星人-------------')
111 alien_dict=[]
112 #创建30个外星人
113 for alien_number in range(30):
114 new_alien={'color':'green','point':5,'speed':'slow'}
115 alien_dict.append(new_alien)
116 #修改外星人的值
117 for alien_show in alien_dict[:3]:
118 if alien_show['color']=='green':
119 alien_show['color']='yellow'
120 alien_show['speed']='fast'
121 alien_show['种类']='精英'
122 #显示前五个外星人
123 print('显示前五个外星人')
124 for alien_show in alien_dict[:5]:
125 print(alien_show)
126
127 ## 显示创建了多少个外星人
128 print('共创建了外星人有:'+str(len(alien_dict)))
129
130 ##在字典中存储列表
131 #披萨的信息
132 pizza={
133 '厨师':'汤米',
134 '配料':['生菜','鸡蛋','面粉','牛肉']
135 }
136 #概述所点披萨
137 print('披萨的厨师是:'+str(pizza['厨师'])+'\n配料有:')
138 for topping in pizza['配料']:
139 print('\t'+topping)
140 love_language={
141 '小明':['C语言','Python'],
142 '强哥':['C语言','shell'],
143 '平哥':['python'],
144 '康康':['C#'],
145 }
146 for name,languages in love_language.items():
147 print('\n'+name+'喜欢的语言有:')
148 for lang in languages:
149 print(lang)
150 ##在字典中存储字典和列表
151 print('------------------------------------')
152 print('打印张三丰和王重阳的信息:')
153 users={
154 '张三丰':{
155 '姓氏':'张',
156 '名称':'三丰',
157 '居住地':'武当山',
158 '门派':'武当派',
159 '嫡传弟子':['宋远桥','俞莲舟','俞岱岩','张松溪','张翠山','殷梨亭','莫声谷']
160 },
161 '王重阳':{
162 '姓氏':'王',
163 '名称':'重阳',
164 '居住地':'终南山',
165 '门派':'全真教',
166 '嫡传弟子':['马钰','谭处端','刘处玄','丘处机','王处一','郝大通','孙不二']
167 }
168 }
169 for user_name,user_info in users.items():
170 print('姓名:'+user_name)
171 last_name=user_info['姓氏']
172 first_name=user_info['名称']
173 home=user_info['居住地']
174 family=user_info['门派']
175 child=user_info['嫡传弟子']
176 print('姓氏:'+last_name)
177 print('名称:'+first_name)
178 print('居住地:'+home)
179 print('门派:'+family)
180 print('嫡传弟子:'+str(child))
181 print('\n\n\n')
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~