Python 字典的基本操作

一、创建字典

1、先创建空字典,再添加元素(键值对)

  • 给字典按键赋值时,如果键不存在,则添加新元素,否则就是用新值替换旧值
names = dict()
names[50] = '中华'
names[40] = '荷花'
names[30] = '宽窄'
names[20] = '利群'
print(names)

输出结果:

{50: '中华', 40: '荷花', 30: '宽窄', 20: '利群'}

2、直接创建包含若干键值对的字典

In [7]:cities = {1: '北京', 2: '上海'}

In [8]:cities
Out[8]: {1: '北京', 2: '上海'}

二、读取字典元素 - 按键取值

  • 按键取值,如果键存在,那么返回值;如果键不存在,那么抛出异常
In [9]:names
Out[9]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '利群'}

In [10]:names[50]
Out[10]: '中华'

In [11]:names[10]
Traceback (most recent call last):

  File "<ipython-input-11-f29237377a3d>", line 1, in <module>
    names[10]

KeyError: 10

三、添加与更新字典元素

  • 按键赋值,添加新元素(不存在的键)
  • 如果键存在,则更新旧元素的值
In [12]:names
Out[12]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '利群'}

In [13]:names[10] = '牡丹'  # 添加元素

In [14]:names[20] = '黄鹤楼'  # 更新元素

In [15]:names
Out[15]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '牡丹'}
  • 可以将一个字典拆分成两个列表:键列表和值列表
  • 利用 keys() 返回键列表
  • 利用 values() 返回值列表
In [15]:names
Out[16]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '牡丹'}

In [17]:names.keys()  # 键列表
Out[17]: dict_keys([50, 40, 30, 20, 10])

In [18]:names.values()  # 值列表
Out[18]: dict_values(['中华', '荷花', '宽窄', '黄鹤楼', '牡丹'])
  • 利用 update() 也可以进行插入或更新操作
In [19]:names
Out[19]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '牡丹'}

In [20]:names.update({10: '云烟', 5: '黄山'})  # 更新'10',添加'5'

In [21]:names
Out[21]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟', 5: '黄山'}

四、遍历字典元素

  • 利用字典的 key() 函数拿到键列表
names = {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟', 5: '黄山'}
for key in names.keys():
    print('{}{}元'.format(names[key], key))
    # 也可以用 get() 获取该键所对应的值
    # print('{}{}元'.format(names.get(key), key))

输出结果:

中华50元
荷花40元
宽窄30元
黄鹤楼20元
云烟10元
黄山5

五、删除字典元素

1、利用 del 命令删除

  • 删除的键不存则抛出异常
In [21]:names
Out[21]: {50: '中华', 40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟', 5: '黄山'}

In [22]:del names[50]

In [23]:names
Out[23]: {40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟', 5: '黄山'}

2、利用字典的 pop() 函数删除

  • 删除的键不存则抛出异常
In [23]: names
Out[23]: {40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟', 5: '黄山'}

In [24]: names.pop(5)
Out[24]: '黄山'

In [25]: names
Out[25]: {40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟'}

六、基于两个等长列表创建字典

  • 基于城市列表和市花列表
cities = ['北京', '上海', '广州 ']
flowers = ['菊花', '玉兰', '木棉']
city_flower = dict(zip(cities, flowers))
print(city_flower)

输出结果:

{'北京': '菊花', '上海': '玉兰', '广州 ': '木棉'}

七、关于字典元素获取的缺省值

  • get() 函数返回指定键的值。
  • get() 语法:dict.get(key, default)
  • key – 字典中要查找的键。
  • default – 如果指定键的值不存在时,返回的默认值。默认为 None
  • 返回指定键的值,如果键不在字典中返回 default 默认值
names = {40: '荷花', 30: '宽窄', 20: '黄鹤楼', 10: '云烟'}
name_1 = names.get(40)
name_2 = names.get(50)
name_3 = names.get(50, '不存在')
name_4 = names.get(30, '不存在')
print('name_1:{}\nname_2:{}\nname_3:{}\nname_4:{}'.format(name_1, name_2, name_3, name_4))

输出结果:

name_1:荷花
name_2:None
name_3:不存在
name_4:宽窄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iFulling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值