概述
Python笔记for字典
文章目录
- Python笔记for字典
- 1 使用字典
- 1.1 定义字典
- 1.2 访问字典的值
- 1.3 修改与添加键-值对
- 1.4 空字典
- 1.5 删除键-值对
- 1.6 用多行来定义字典
- 2 遍历字典
- 2.1 遍历所有键值对:item()
- 2.2 遍历字典中的所有键:keys()
- 2.3 按顺序遍历字典中的所有键:sorted()
- 2.4 遍历字典中的所有值:values()
- 3 嵌套
- 3.1 字典列表
- 3.2 在字典中存储列表
- 3.3 在字典中存储字典
- 4 字典的一些内置方法汇总
- 5 集合
- 5.1 创建集合
- 5.2 访问集合
- 5.3 不可变集合
1 使用字典
本节将主要以一个外星人入侵小游戏为例子,定义其颜色color,速度speed,射杀后获得分数points,将不再在代码中为游戏注释。
1.1 定义字典
#常用
alien_0={'color':'green','points':5}
alien_0=dict(color=green,points=5)
#其他
alien_0=dict(zip(['color','points'],['green','5']))
dict([('color',green),('points',5)])
1.2 访问字典的值
dictname[key]
print(alien['color'])
1.3 修改与添加键-值对
dictname[key]=value,key存在则修改,不存在则添加
alien_0['color']='yellow'
alien_0['x_position']=0
alien_0['y_position']=25
1.4 空字典
alien_0={}
alien_0['color']='green'
alien_0['points']=5
1.5 删除键-值对
del dictname[key].(删除不可找回)
del alien['points']
1.6 用多行来定义字典
对于较大的字典,可以多行来进行定义,提高代码的可读性。
确定需要使用多行来定义字典时, 在输入左花括号后按回车键, 再在下一行缩进四个空格, 指定第一个键—值对, 并在它后面加上一个逗号。 此后你再次按回车键时, 文本编辑器将自动缩进后续键—值对, 且缩进量与第一个键—值对相同。
可在最后一个值对后面也加上逗号,方便后续添加。
favorite_languages={
'Jen':'Python',
'Sarah':'C',
'Edward':'Ruby',
'Phil':'Python',
}
2 遍历字典
2.1 遍历所有键值对:item()
使用for循环来遍历字典,可以声明两个任意名称的变量,使用方法为item()
for循环的返回值顺序与存储顺序并不相同,因为dict不关心顺序
for name,language in favorite_languages.item():
print('nname:'+name,end='')
print(''s language is '+language)
2.2 遍历字典中的所有键:keys()
依然使用for循环来遍历所有键,与上类似,只是要使用到keys()方法
#若字典中的name未大写,可以在输出的时候用title()
for name in favorite_languages.keys():
print(name.title())
实际上遍历字典会默认遍历所有键,所以也可用以下代码替代
for name in favorite_languages:
方法keys()并非只能用于遍历,实际上它返回了一个列表,其中包含了字典的所有键,因此对列表的用法也可以应用在keys()上,如
friends=['Phil','Sarah','Erin']
for name in friends:
if name in favorite_languages.keys():
print('Hi '+name+',I see your favorite language is '+favorite_languages[name]+'!')
else:
print(name,'please write your favorite language in this dict.')
2.3 按顺序遍历字典中的所有键:sorted()
可以在for循环中对返回的键使用sorted()进行排序
for name in sorted(favorite_languages.keys()):
print(name+',thank you for taking the poll.')
2.4 遍历字典中的所有值:values()
使用方法同keys相同,由于值可以相同,如果想获得不重复的值,可以使用集合set
for language in set(favorite_languages.value()):
print(language)
3 嵌套
有时候, 需要将一系列字典存储在列表中, 或将列表作为值存储在字典中, 这称为嵌套 。可以在列表中嵌套字典、 在字典中嵌套列表甚至在字典中嵌套字典。
3.1 字典列表
先创建字典,再将字典作为普通元素用于创建列表即可
alien_0={'color':'green','points':5}
alien_1={'color':'yellow','points':10}
alien_2={'color':'red','points':15}
aliens=[alien_0,alien_1,alien_2]
for alien in aliens:
print(alien)
也可以使用for循环将指定的字典存入列表
for alien_number in range(30):
new_alien={'color':'green','points':5,'speed':'slow'}
aliens.append(new_alien)
用for修改列表中字典
for alien in aliens[:3]:
if alien['color']=='green':
alien['color']='yellow'
alien['speed']='medium'
alien['points']=10
3.2 在字典中存储列表
将列表作为值添加进字典,或者创建字典即可,以达到在字典中将一个键关联到多个值的目的。
#存储所点比萨的信息
pizza={
'crust':'thick',
'toppings':['mushrooms','extra cheese'],
}
3.3 在字典中存储字典
同上,将字典作为值使用即可。
users={
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princeton',
},
'mcurie':{
'first':'marie',
'last':'curie',
'location':'paris',
},
}
for username,user_info in users.items():
print('nUsername:'+username)
full_name=user_info['first']+user_info['last']
location=user_info['location']
print('tFull name: '+full_name.title())
print('tLocation: '+location.title())
尽量使作为不同值定义的每个字典的结构都相同,这样可以使嵌套的字典更加容易使用和处理
4 字典的一些内置方法汇总
***fromkeys()***:用于创建并返回一个新字典,第一个参数时字典的键,第二个参数可选,是传入键对应的值,默认None。
***keys()***:返回键
***values()***:返回所有值
***items()***:返回键值对
***get()***:第一个参数为键,返回值,可在第二个参数设置对应的默认返回值
***setdefault()***:与get()类似,在字典中找不到相应的键时会自动添加
in 或 not in:成员资格操作符,判断键是否在字典中
***clear()***:清空字典
***copy()***:复制字典
***pop()***:给定键弹出对应的值
popitem():弹出一个键值对项
***update()***:更新字典
a={'one':1}
a.update(one=2)
5 集合
使用花括号表示,但没有体现映射关系的就是集合。
集合是无序的,元素具有唯一性。
5.1 创建集合
使用花括号
set1={'鸡','鸭','鱼','肉'}
使用set转换列表
set2=set(['鸡','鸭','鱼'])
注:可以利用set来去除一个列表中重复的元素。
5.2 访问集合
使用迭代来访问:
set1={1,2,3,4,5}
for each in set1:
print(each,end='')
***add()***:为集合添加元素
***remove()***:删除集合中已知元素
5.3 不可变集合
frozenset()
最后
以上就是冷艳棉花糖为你收集整理的Python笔记for字典Python笔记for字典的全部内容,希望文章能够帮你解决Python笔记for字典Python笔记for字典所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复