Python:从列表中获取满足某些属性

时间:2017-01-07 21:37:51

标签: python

我有以下列表。

[('L', 'l'), ('L', 'R'), ('R', 'l'), ('R', 'R')]

我想找到这个列表的一个子集,它满足像&#34这样的属性;每个元组都有" R"作为第二个条目"。我是编程新手(几天前开始学习python语法)所以请尽可能清楚,谢谢。

编辑:这应该概括,因为上面的列表可能有更多的元组,每个元组可以有更多的元素。

1 个答案:

答案 0 :(得分:2)

像这样使用list comprehension

my_list = [('L', 'l'), ('L', 'R'), ('R', 'l'), ('R', 'R')]
res = [item for item in my_list if item[1] == 'R']

<强>输出:

>>> res
[('L', 'R'), ('R', 'R')]

请注意,您可以使用filter()获得相同的结果,但是您应该使用上述解决方案(LC更加pythonic):

res = filter(lambda item: item[1] == 'R', my_list)  # list(filter(...)) in Python 3