这个问题是我当前问题的一部分,所以让我们从大局出发。
我正在尝试按降序排列字典。我的字典是1对1对应的,例如:
('ID1':value1,'ID2':value2,......)
我跟着this thread找到了答案:
import operator
sorted_dict = sorted(original_dict.iteritems(), key = operator.itemgetter(1), reverse = True)
然后我尝试在sorted_dict
中提取密钥,因为我认为它是dictionary
。但是,事实证明sorted_dict
是list
,因此没有keys()
方法。
事实上,sorted_dict
被组织为:
[('ID1',value1),('ID2',value2),.....]#由元组组成的列表
但我需要的是一系列ID,例如:
['ID1','ID2',......]
现在,问题转向如何为列表中的每个元组提取特定位置的变量?
有什么建议吗?感谢。
答案 0 :(得分:3)
您可以使用list comprehension执行此操作,如下所示:
>>> ids = [element[0] for element in sorted_dict]
>>> print ids
['ID1', 'ID2', 'ID3', ...]
这将获取tuple
元组列表中每个sorted_dict
的第一个元素
答案 1 :(得分:1)
使用列表理解:
[i for (i,_) in sorted_dict]
应解决您的问题
答案 2 :(得分:0)
使用map
加itemgetter
处理列表并获取第一个元素
import operator
first_elements = map(operator.itemgetter(0), sorted_list)