如何只将元组列表的第一个元素放入数组中

时间:2015-02-12 18:03:47

标签: python arrays tuples list-comprehension python-3.3

我有(查询结果)my_list = [('a',),('b',),('c',),('g',),('j',)]
我想将其翻译为['a','b','c']
到目前为止我所拥有的r = [rs for rs in my_list if rs not in[('g',),('j',)]]

这将获取('a',),('b',),('c',)

3 个答案:

答案 0 :(得分:1)

inputs = [('a',),('b',),('c',),('g',),('j',)]

r = [left for (left,) in inputs if left not in ['g','j']]

注意list是python中的一个重要函数,使用它作为变量名将覆盖它。

答案 1 :(得分:0)

您需要选择元组的第一个元素:

r = [rs[0] for rs in list if rs not in[('g',),('j',)]]
#       ^

答案 2 :(得分:0)

我不了解选择项目的规则,但您想要flatten您的初始列表(list重命名为l):

[item for sublist in l[:3] for item in sublist]

返回['a', 'b', 'c']

如果您已经知道输入列表的结构,则无需过滤每个项目。如果过滤规则比当前问题建议的更复杂,则应指定它们。