Python的基础学习(四):字典


1. 字典的使用

1.1 创建一个字典

  • 在之前的文章中有提到过字典,字典用放在花括号"{ }"中的一系列键-值对表示,例如:
alien = {'color': 'green', 'points': 5}
  • 键-值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值直接用":“分隔,键-值对直接用”,"分隔。

1.2 访问字典中的值

  • 要获取与键相关联的值,可依次指定字典名和放在方括号内的键,举例:
alien_0 = {'color': 'green'}
print(alien_0['color'])
> 输出:
green

1.3 添加键-值对

  • 字典是一种动态结构,可随时在其中添加键-值对。
  • 添加键-值对,可依次指定字典名、用放方括号括起的键和相关联的值。
alien_0 = {'color': 'green'}
alien_0['points'] = 5
print(alien_0)
> 输出:
{'color': 'green', 'points': 5}

1.4 修改字典中的值

  • 修改字典中的值,只需要依 次指定字典名、用方括号括起的键和需要改变的值就可以了。
alien_0 = {'color': 'green'}
alien_0['color'] = 'yellow'
print(alien_0['color'])
> 输出:
yellow

1.5 删除键-值对

  • 对于字典中不在需要的信息,可使用del语句将对应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
alien = {'color': 'green', 'points': 5}
del alien['points']
print(alien)
> 输出:
{'color': 'green'}

2. 遍历字典

方法效果
items()字典中所有的键-值对
keys()字典中所有的键
values()字典中所有的值

案例:

favorite_languages = {
    'jen': 'python',
    'sarch': 'c',
    'edward': 'java',
    'phil': 'python'
    }

2.1 遍历所有的键-值对

  • 最常规的做法是:
for name, language in favorite_languages.items():
    print(name, language)
> 输出:
jen python
sarch c
edward java
phil python
  • 你还可以这样做:
for name in favorite_languages.keys():
    print(name, favorite_languages[name])
> 输出:
jen python
sarch c
edward java
phil python

2.2 遍历所有的键

for name in favorite_languages.keys():
    print(name)
> 输出:
jen
sarch
edward
phil

2.3 遍历所有的值

for language in favorite_languages.values():
    print(language)
> 输出:
python
c
java
python
  • 在提取值的时候,可能有些值是重复的,我们仅仅只想知道有多少中类型的值,而不是知道所有的值,要想达到这样的结果,这个时候就体现了集合的重要性了。
for language in set(favorite_languages.values()):
    print(language)
> 输出:
python
c
java

2.4 按顺序遍历字典中的所有键或值

  • 只需要使用sorted函数(sorted函数具有临时性)就可以了
for name in sorted(favorite_languages.keys()):
    print(name, favorite_languages[name])
> 输出:
edward java
jen python
phil python
sarch c

3. 字典与列表的嵌套

3.1 在列表中存储字典

  • 我们先简单创建一个字典列表,首先我们需要创建几个字典,并将他们放进列表:
#  先创建3个字典,表示3类外星人的信息
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]
print(aliens)
> 输出:
[{'color': 'green', 'points': 5}, {'color': 'yellow', 'points': 10}, {'color': 'red', 'points': 15}]
  • 当然,在实际应用中,可能需要动态的存储一些数据
#  先创建一个空列表
aliens = []
#  存储3个红色外星人
for alien_number in range(3):
    new_alien = {'color': 'red'}
    aliens.append(new_alien)
#  存储2个黄色外星人
for alien_number in range(2):
    new_alien = {'color': 'yellow'}
    aliens.append(new_alien)
print(aliens)
> 输出:
[{'color': 'red'}, {'color': 'red'}, {'color': 'red'}, {'color': 'yellow'}, {'color': 'yellow'}]
  • 代码中的range函数可以创建一系列的数字,从而达到循环的目的。range(2)即为range(0, 2, 1)由0到2,每次递增1。

3.2 在字典中存储列表

  • 无非就是照猫画虎,举个例子就都懂了:
favorite_languages = {
    'jen': ['python', 'ruby'],
    'sarah': ['c'],
    'edward': ['ruby', 'go'],
    'phil': ['python', 'haskell'],
    }
for name, languages in favorite_languages.items():
    print(name.title() + " 's favorite languages are:")
    for language in languages:
        print("\t" + language.title())
> 输出:
Jen 's favorite languages are:
	Python
	Ruby
Sarah 's favorite languages are:
	C
Edward 's favorite languages are:
	Ruby
	Go
Phil 's favorite languages are:
	Python
	Haskell

3.3 在字典中存储字典

  • 如果你需要做一个学生成绩管理系统,你需要将存储不同班级内的不同学生的不同信息,这个时候这种办法就可以办到:
students = {
    'john': {
            'math': 100,
            'chinese': 150,
            'english': 50,
        },
    'mike': {
            'math': 200,
            'chinese': 250,
            'english': 150,
        },
    }
for name, info in students.items():
    print(name + "'s scores are: " + str(sum(info.values())))
> 输出:
john's scores are: 300
mike's scores are: 600
  • 其中sum()函数是用来求列表中数值总和的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值