Python学习笔记--(四)字典

使用字典

在Python中,字典是一系列键-值对,键和值之间用冒号分割,键值对之间用逗号分隔。字典中的最后一对键值对后面可以加逗号也可以不加,推荐加上避免新增加键值对时忘记此处的逗号。可将任何Python对象用作字典中的值。

访问字典中的值

要获得与键相关联的值,可依次指定字典名和放在方括号内的键。

apple = {'color':'red','size':'big'}
print(apple['color'])
print(apple['size'])
red
big

添加键值对

字典是一种动态结构,可随时在其中添加键值对。但要注意的是Python不关心键值对的添加顺序,只关心键和值之间的关联关系

apple = {'color':'red','size':'big'}
print(apple)
apple['taste'] = 'good'
print(apple)
{'color': 'red', 'size': 'big'}
{'color': 'red', 'size': 'big', 'taste': 'good'}

在最开始不知道字典内容的时候可以先创建一个空字典。

apple = {}

修改字典中的值

apple = {'color':'red','size':'big','taste':'good'}
apple['taste'] = 'bad'
print(apple)
{'color': 'red', 'size': 'big', 'taste': 'bad'}

删除键值对

可以使用del语句将键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

del apple['taste']
print(apple)
{'color': 'red', 'size': 'big'}

由类似对象组成字典

字典可以存储一个对象的多种属性,也可以存储多个对象的同一属性

favorite_languages = {
    'Mike':'C',
    'John':'Java',
    'William':'Python',
    'Tang':'Python',
}
print(favorite_languages)
{'Mike': 'C', 'John': 'Java', 'William': 'Python', 'Tang': 'Python'}

遍历字典

有多种遍历字典的方式:遍历字典的键、值或键值对。

遍历所有键值对

apple = {'color':'red','size':'big'}
for key,value in apple.items():
    print("key:" + key)
    print("Value:" + value)
key:color
Value:red
key:size
Value:big

for语句中的方法items()返回一个键值对列表。for循环依次将每个键值对存储到指定的两个变量中。

遍历字典中的所有键

favorite_languages = {
    'Mike':'C',
    'John':'Java',
    'William':'Python',
    'Tang':'Python',
}
for name in favorite_languages.keys():
    print(name)
Mike
John
William
Tang

方法keys()返回一个列表,其中包含字典中的所有键。所以该方法不只用于遍历,譬如下面判断元素是否在字典的键中。同时遍历字典时会默认遍历所有的键,因此如果将上面的代码中for name in favorite_languages.keys():替换为for name in favorite_languages:,输出将不变。

if 'Tang' in favorite_languages.keys():
    print(True)
True

遍历字典中所有的值

如果感兴趣的是字典中的值,那么可以使用方法values(),它返回一个值的列表。

favorite_languages = {
    'Mike':'C',
    'John':'Java',
    'William':'Python',
    'Tang':'Python',
}
for language in favorite_languages.values():
    print(language)
C
Java
Python
Python

这种做法提取字典中所有的值,不考虑是否重复。如果想要剔除掉重复的值,那么使用set()函数将列表转换为集合。

for language in set(favorite_languages.values()):
    print(language)
C
Java
Python

嵌套

有时需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。

字典列表

我们经常需要在列表中包含大量的字典,其中每个字典代表一个特定对象,字典中包含了这个对象的众多属性。

apple = {'name':'apple','color':'red','size':'middle'}
banana = {'name':'banana','color':'yellow','size':'middle'}
watermelon = {'name':'watermelon','color':'green','size':'big'}
fruits =[apple,banana,watermelon]
print(fruits)
[{'name': 'apple', 'color': 'red', 'size': 'middle'}, {'name': 'banana', 'color': 'yellow', 'size': 'middle'}, {'name': 'watermelon', 'color': 'green', 'size': 'big'}]

在字典中存储列表

每当需要在字典中讲一个键关联到多个值时,都可以在字典中嵌套一个列表。

favorite_languages = {
    'Mike':['C','Java'],
    'John':['C','Python'],
}
print(favorite_languages)
{'Mike': ['C', 'Java'], 'John': ['C', 'Python']}

注意列表和字典的嵌套层级不应太多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值