在Python列表中为每个元组的特定位置提取变量

时间:2014-03-27 14:44:44

标签: python list dictionary tuples

这个问题是我当前问题的一部分,所以让我们从大局出发。

我正在尝试按降序排列字典。我的字典是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_dictlist,因此没有keys()方法。

事实上,sorted_dict被组织为:

  

[('ID1',value1),('ID2',value2),.....]#由元组组成的列表

但我需要的是一系列ID,例如:

  

['ID1','ID2',......]

现在,问题转向如何为列表中的每个元组提取特定位置的变量?

有什么建议吗?感谢。

3 个答案:

答案 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)

使用mapitemgetter处理列表并获取第一个元素

import operator
first_elements = map(operator.itemgetter(0), sorted_list)