Python对字典的常用操作:取值、键值对调、排序

字典

dic(key,value)
  1. 首先构建一个字典
dic1 = {}
dic1[1] = 3
dic1[2] = 19
dic1[5] = 6
dic1[4] = 12

print(dic1)
# output
{1: 3, 2: 19, 5: 6, 4: 12}
  1. 单独取出字典的键keys
ks = dic1.keys()
print(ks,type(ks))
# output
dict_keys([1, 2, 5, 4]) <class 'dict_keys'>
  1. 单独取出字典的值values
vs = dic1.values()
print(vs,type(vs))
# output
dict_values([3, 19, 6, 12]) <class 'dict_values'>

将单独取出的键(keys)或值(values)转化为列表,只需要list(ks)或者list(vs)

  1. 同时取出字典的键(keys)和值(values)
ies = dic1.items()
print(ies,type(ies))
# output
dict_items([(1, 3), (2, 19), (5, 6), (4, 12)]) <class 'dict_items'>
  1. 对字典按值(values)进行排序
# 升序排序
sa_dic1 = sorted(dic1.items(),key=lambda kv:(kv[1],kv[0]))
print(sa_dic1,type(sa_dic1))
# 降序排序
sd_dic1 = sorted(dic1.items(),key=lambda kv:(kv[1],kv[0]),reverse=True)
print(sd_dic1,type(sd_dic1))
# output
[(1, 3), (5, 6), (4, 12), (2, 19)] <class 'list'>
[(2, 19), (4, 12), (5, 6), (1, 3)] <class 'list'>
  1. 对字典按键(keys)进行排序
# 升序排序
ka_dic1 = []
for i in sorted(dic1,reverse=False):
    a = (i,dic1[i])
    ka_dic1.append(a)
print(ka_dic1)
# output
[(1, 3), (2, 19), (4, 12), (5, 6)]

sorted(dic1)输出的是对字典键的排序,输出类型为列表。输出:[1, 2, 4, 5] <class ‘list’>

  1. 排序后仍为字典
dic3 = {"name": "Taobao", "age": 100}
new_dic = {}
for k in sorted(dic3):
    new_dic[k] = dic3[k]
print(new_dic)

# output
{'age': 100, 'name': 'Taobao'}
  1. 将键(keys)与值(values)对调
dic2 = {v:k for k,v in dic1.items()}
print(dic2)
# output
{3: 1, 19: 2, 6: 5, 12: 4}
  1. 字典列表排序(例子来源菜鸟教程
lis = [{"name": "Taobao", "age": 100},
       {"name": "Runoob", "age": 7},
       {"name": "Google", "age": 100},
       {"name": "Wiki", "age": 200}]

# 通过 age 升序排序
print("列表通过 age 升序排序: ")
print(sorted(lis, key=lambda i: i['age']))

print("\r")

# 先按 age 排序,再按 name 排序
print("列表通过 age 和 name 排序: ")
print(sorted(lis, key=lambda i: (i['age'], i['name'])))

print("\r")

# 按 age 降序排序
print("列表通过 age 降序排序: ")
print(sorted(lis, key=lambda i: i['age'], reverse=True))
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中,可以使用内置的`sorted()`函数来对字典进行排序。如果要按照键值进行排序,可以通过指定`key`参数来实现。 下面是一个示例代码,演示了如何使用`sorted()`函数对字典按照键值进行排序: ```python my_dict = {"c": 1, "a": 3, "b": 2} sorted_dict = dict(sorted(my_dict.items(), key=lambda x: x[0])) print(sorted_dict) ``` 在上面的代码中,`my_dict`是要排序字典,`sorted()`函数的`key`参数指定为`lambda x: x[0]`,这表示按照字典键值来排序。最终的结果保存在`sorted_dict`中,使用`dict()`函数将排序后的元素转换为字典。 注意,上面的代码中使用了`items()`方法,它将字典转换为元组列表,然后再进行排序。如果要按照字典的值进行排序,只需要将`lambda x: x[0]`改为`lambda x: x[1]`即可。 ### 回答2: 在Python中,可以按照字典键值对进行排序。可以使用内置的`sorted()`函数,并使用`key`参数来指定排序的依据。 首先,假设我们有一个字典`d`,其中包含了键值对: ```python d = {'apple': 5, 'banana': 3, 'cherry': 1, 'date': 2} ``` 要根据字典键值对进行排序,可以使用以下代码: ```python sorted_d = sorted(d.items(), key=lambda x: x[1]) ``` 在上述代码中,`d.items()`将字典`d`转换为包含键值对的元组列表,`key`参数指定了排序的依据,即第二个元素`x[1]`,它表示字典的值。然后,将排序后的结果赋值给新的变量`sorted_d`。 现在,`sorted_d`中的元素按照字典的值进行了排序。可以通过遍历该变量来按照排序后的顺序访问键值对,并进行其他操作。例如,可以使用以下代码打印排序后的结果: ```python for item in sorted_d: print(item[0], item[1]) ``` 这样就可以按照字典键值对进行排序并进行相应的操作了。 ### 回答3: 在Python中,可以使用sorted()函数来对字典按键值进行排序。考虑以下字典作为示例: ```python d = {'a': 3, 'b': 1, 'c': 2} ``` 要按值对字典进行排序,可以通过将字典的items()方法转换为一个可迭代对象,然后使用sorted()函数对其进行排序。示例代码如下: ```python sorted_d = sorted(d.items(), key=lambda x: x[1]) ``` 在上述代码中,key参数接受一个lambda函数,该函数将x作为参数表示字典中的每个键值对(以元组形式存在)。lambda函数通过返回x[1]来指定按值对字典进行排序排序后的结果保存在sorted_d变量中,它是一个列表,其中每个元素都是一个包含键值对的元组。对于上述示例字典d,sorted_d的值为: ``` [('b', 1), ('c', 2), ('a', 3)] ``` 如果希望按值降序排序,可以将reverse参数设置为True: ```python sorted_d = sorted(d.items(), key=lambda x: x[1], reverse=True) ``` 这将返回以下结果: ``` [('a', 3), ('c', 2), ('b', 1)] ``` 通过使用sorted()函数和一个自定义的lambda函数作为key参数,可以方便地按键值对字典进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值