字典(python学习)

目录

5.1一个简单的字典

5.1.1 定义什么是字典:

5.2字典的基本操作

5.2.1访问字典中的值

5.2.2添加键值对

5.2.3修改、删除字典中的值

5.2.4使用get()来访问值

5.3遍历字典

5.3.1遍历字典的所有键值对

5.3.2遍历字典中所有的键或值、集合

5.4嵌套

5.4.1字典列表

5.4.2字典中存储列表

5.4.3在字典中存储字典


 

 

5.1一个简单的字典

#一个简单的字典
alien={'color':'green','points':5}
print(alien['color'])
print(alien['points'])
green
5

5.1.1 定义
什么是字典:

 1. 字典是一种可变的容器,可以存储任意类型的数据

 2. 字典中的每个数据都是用"键" (key) 进行索引,而不像序列可以用下标进行索引

 3. 字典中的数据没有先后关系,字典的存储是无序的

 4. 字典的数据是以键(key)-值(value)对的形式进行存储的

 5. 字典的表示方式是以{} 括起来,以冒号(:)分割的键值对,各键值对之间用逗号分隔开

 6. 字典的键不能重复
5.2使用字典

在python中,字典是键值对,字典中的花括号{}表示一系列的键值对。

5.2字典的基本操作

5.2.1访问字典中的值

将字典中的alien与color和points相关联,c1代表color的值,c2代表points的值。最后进行输出。

alien={'color':'green','points':5}
c1=alien['color']
p1=alien['points']
print(c1)
print(p1)
print(f"the color is {c1} player just earned {p1} points!")

5.2.2添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键值对时,可依此指定字典名、用方括号[]括起来的键和相关联的值,下面分别用x,y表示外星人的坐标。

最后输出得到了两个所添加的坐标值

在python3.7中,字典中元素的排列顺序与定义时相同。如果字典打印出来或遍历其元素,将发现元素的排列顺序与添加顺序相同。

alien={'color':'green','points':5}
print(alien)
alien['x_position']=0
alien['y_position']=25
print(alien)
{'color': 'green', 'points': 5}
{'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}

5.2.3修改、删除字典中的值

修改:由于在字典中,“键”必须是唯一的,如果新添加元素的“键”与已经存在的“键”重复,那么将使用新的“值”替换原来该“键”的值,这也相当于修改字典的元素。

alien={'color':'green','points':5}
print(alien)
alien['color']='yellow'
print(alien)

删除:对于字典不再需要的信息,可使用del语句将相应的键值对彻底删除,删除的键值对将永远消失。

如下删除代码,已删除points及其值5,但其他键并未受影响。

alien={'color':'green','points':5}
del alien['points']
print(alien)

5.2.4使用get()来访问值

使用放在方括号内的键从字典中获取感兴趣的值时,可能会引发问题:如果指定的键不存在就会出错。

方法get()的第一个参数用于指定键,是必不可少的;第二个参数为知道你过的键不存在时要返回的值,是可选的。第二个参数为想查询的键不存在时返回的值,是可选的;若未指定返回的值,则自动返回None

#get访问
alien={'color':'green','points':5}
value_speed=alien.get('speeds','No speed value assigned')
print(value_speed)

5.3遍历字典

5.3.1遍历字典的所有键值对

要编写遍历字典的for循环,可声明两个变量,用于存储键值对中的键和值。

如下代码(key和value也可用其他字符串代替,不是唯一的)

键:key

值:value

使用方法items(),它返回一个键值对列表。

#遍历字典
favourite_languages={'amy':'python','ben':'c','cing':'java','dok':'python'}
for key,value in favourite_languages.items():
    print(f"key:{key}")
    print(f"value:{value}\n")

5.3.2遍历字典中所有的键或值、集合

keys()返回键列表

valus()返回值列表

set()剔除重复元素(集合)

方法keys()并非只能遍历:实际上,它返回一个列表,其中包含字典中所有的键

favourite_languages={'amy':'python','ben':'c','cing':'java','dok':'python'}#--snip--
for name in favourite_languages.keys():
    print(name.title())
print("\n")

for language in favourite_languages.values():
    print(language.title())
print("\n")
#剔除重复项,此代码运行结果就删除了重复的python
for language in set(favourite_languages.values()):
    print(language)

列表(list)和元组(tuple)是标准的 Python 数据类型,它们将值存储在一个序列中。集合(set)是另一种标准的 Python 数据类型,它也可用于存储值。它们之间主要的区别在于,集合不同于列表或元组,集合中的每一个元素不能出现多次,并且是无序存储的。

集合是一个拥有确定(唯一)的、不变的的元素,且元素无序的可变的数据组织形式。

你可以使用「set()」操作初始化一个空集。

5.4嵌套

嵌套:将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。 既可以在列表中嵌套字典,也可以在字典中嵌套列表,甚至在字典中嵌套字典 。

5.4.1字典列表

列表嵌套字典

#嵌套,字典列表
alien_0={'color':'green','point':'0'}
alien_1={'color':'green','point':'1'}
alien_2={'color':'green','point':'2'}
aliens=[alien_0,alien_1,alien_2]
print(aliens)

下列代码,使用range()生成20个外星人,创建颜色,显示个数

#自动生成20个外星人,列表中存储字典
#创建一个可用于储存外星人的空列表
aliens=[]
for alien_number in range(20):
    alien_0={'color':'green','point':'0'}
    aliens.append(alien_0)
#显示前五个外星人
for alien in aliens[:5]:
    print(alien)
print("\n")
#可以修改颜色与显示外星人个数
for alien_1 in aliens[:3]:
    if alien_1['color']=='green':
        alien_1['color']='pink'
        alien_1['point']=6
for alien_1 in aliens[:5]:
    print(alien_1)

5.4.2字典中存储列表

列表和字典的嵌套层次不应太多,如果嵌套层次比前面的示例多得多,很可能有更简单的解决方案。

#字典中存储列表
favourite_languages={
    'amy':'python',
    'ben':'c',
    'cing':['java','python'],
    'dok':'python'
}
print(favourite_languages['amy'])
print(favourite_languages['cing'])
for ci in favourite_languages['cing']:
    print("\t"+ci)
python
['java', 'python']
	java
	python

5.4.3在字典中存储字典

纯纯的靠自己看懂

#字典中存储字典
favourite_languages={
    'A1':{
    'amy':'python',
    'ben':'c',
    },
    'A2':{
    'cing':'java',
    'dok':'python',
    },
}
for ff1,ff2 in favourite_languages.items():
    print(ff1)
    print(ff2)
    for mm1,mm2 in ff2.items():
        print(f"{mm1}**{mm2}")
    print("\n")
A1
{'amy': 'python', 'ben': 'c'}
amy**python
ben**c


A2
{'cing': 'java', 'dok': 'python'}
cing**java
dok**python

请指正

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值