Python:使用嵌套循环列表理解

时间:2015-05-29 20:40:07

标签: python list python-2.7 list-comprehension

我有一种情况,我使用列表理解来扫描一个列表并返回符合特定条件的项目。

[item for item in some_list_of_objects if 'thisstring' in item.id]

我想扩展它,并列出项目中可以包含的内容,列表长度未知。像这样:

string_list = ['somestring', 'another_string', 'etc']

[item for item in some_list_of_objects if one of string_list in item.id]

什么是pythonic方法来实现这一目标?我知道我可以很容易地重写它以使用标准的循环结构,但是我想保持列表理解,如果我能这样做而不会产生非常难看的代码。

提前致谢。

2 个答案:

答案 0 :(得分:2)

使用any

string_list = ['somestring', 'another_string', 'etc']

[item for item in some_list if any(s in item.id for s in string_list)]

如果我们没有得到匹配,懒洋洋地评估打破第一场比赛或检查所有比赛。

答案 1 :(得分:2)

您可以使用内置MvxTableViewSource功能 any