python字典操作(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的实例:

dict = {'WJ': 'female', 'CT': 'male'}

这里主要说明一键一值和一键多值的情况。

一、 一键一值

  1. 访问字典中的值: dict[key] 返回key对应的值value
print(dict['WJ'])
# 代码结果
female
  1. 为字典增加一项: dict[key] = value
dict['XXT'] = 'male'
print(dict)
# 代码结果
{'WJ': 'female', 'CT': 'male', 'XXT': 'male'}
  1. 删除字典的一项: del dict[key] 或者 dict.pop[key]
del dict['WJ']
# 代码结果
{'CT': 'male', 'XXT': 'male'}
  1. 遍历字典
for key in dict:
	print(key + ':' + dict[key])
# 代码结果
WJ:female
CT:male
XXT:male
  1. 判断一个键是否在字典中: in 或者 not in
'WJ' in dict    # True
'XXJ' not in dict  # True

二、一键多值(defaultdict类)

  1. 这里按照append顺序设置下标,下标表示类似二维数组
from collections import defaultdict
dict = defaultdict(list)  # 这里如果希望消除重复元素(且不在意他们的顺序),就用集合。set
dict = defaultdict(list)
dict['WJ'].append('female')
dict['WJ'].append(22)
dict['CT'].append('male')
print(dict)
# 代码结果
defaultdict(<class 'list'>, {'WJ': ['female', 22], 'CT': ['male']})
  1. 遍历字典
for x in dict:
    print(x + ':' + str(dict[x]))
# 代码结果
WJ:['female', 22]
CT:['male']
  1. 访问多个值中的某个值:
    这里类似数组下标的访问
print(dict['WJ'][0] + ',' + str(dict['WJ'][1]))
# 代码结果
female,22
  1. 字典排序
    排序我们使用sorted,如下:

sorted(L.items(), key=lambda x:x[0], reverse=True)

reverse=True 代表降序,默认为升序;lambda x:x[0] 是设置按照x[0]进行排序,x[0]表示key;x[1]表示value,在一键多值情况下需要使用类似二维数组的表示方法,举例如下:

from collections import defaultdict
dict = defaultdict(list)
dict['WJ'].append('female')
dict['WJ'].append(22)
dict['CT'].append('male')
dict['CT'].append(23)
print(dict)
dict = sorted(dict.items(), key=lambda x:x[1][0])  # 代表value的第一个值
print(dict)
# 代码结果
排序前: defaultdict(<class 'list'>, {'WJ': ['female', 22], 'CT': ['male', 23]})
排序后: [('WJ', ['female', 22]), ('CT', ['male', 23])]

这里我们注意排序后的dict为一个tuple元组
下面用一个实际例子说明一键多值的用法: 见下面链接
https://blog.csdn.net/CT_WJ/article/details/95005180

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值