⑴ python 字典怎么转成两个列表,一个是key的,一个
在Python中,如果你希望将一个字典转换为两个列表,一个列表包含所有的键,另一个列表包含所有的值,你可以按照以下方式操作。假设你有一个字典a如下所示:
a = {1: 'a', 3: 'b', 5: 'c'}
通过调用字典的keys()和values()方法,你可以获取到字典的所有键和值。然后将这两个方法的结果分别赋值给两个变量,如b和c。
具体代码如下:
b, c = a.keys(), a.values()
这样,b将包含字典a中的所有键,而c将包含字典a中的所有值。需要注意的是,b和c将返回可迭代对象,如果你想将它们转换为列表,可以使用list()函数:
b = list(a.keys())
c = list(a.values())
这样,b和c将分别成为包含字典a键和值的列表。
在实际应用中,这种操作非常有用。例如,当你需要对字典中的键和值分别进行操作或排序时,将它们转换为列表后,可以更方便地进行处理。
此外,你还可以使用zip()函数将字典的键和值合并为一个列表的元组。具体操作如下:
keys_and_values = list(zip(a.keys(), a.values()))
这样,keys_and_values将是一个包含元组的列表,每个元组的第一个元素是字典的键,第二个元素是对应的值。
总之,将字典转换为键的列表和值的列表是一种常见的操作,它可以帮助你更好地处理字典中的数据。
⑵ python怎么对字典进行排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:
1 下面的是按照value的值从大到小的顺序来排序。
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
输出的结果:
[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]
下面我们分解下代码
print dic.iteritems() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。
2 对字典按键(key)排序:
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) d[0]表示字典的键
print dict
⑶ Python字典嵌套字典排序,该怎么处理
感觉这个需求有些许问题,因为通常对比排序的都是同一类型的数据,譬如aaa代表是年龄,bbb代表的是工资,等等... 所以不会拿自己的年龄和工资作一次排序。
# 要做的话,可以手动给它并成一个新列‘sort_key’。 obj就是你最外层的a,免得同名混淆
for i in obj:
obj[i]['sort_key'] = obj[i].values()[0]
# 目的是构造出这样的结构:
# ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)
print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))