是否可以简化在for语句中使用if语句获取元组值?

时间:2018-04-20 02:11:17

标签: python

例如,我可以使用枚举等方法简化此代码吗?

list1 = ('c_test1', 'c_test2', 'test3', 'c_test4', 'test5', 'test6', 'c_test7') 
tuple1 = ['list1', 'list2', 'list3', 'list4'] 

i = 0
for x in list(list1): 
    if "c" in str(x):
       print(tuple1[i])
       i+=1

1 个答案:

答案 0 :(得分:1)

您可以使用过滤器和列表理解组合。

list1 = ('c_test1', 'c_test2', 'test3', 'c_test4', 
          'test5', 'test6', 'c_test7')
tuple1 = ['list1', 'list2', 'list3', 'list4']

print [tuple1[i] for i,v in enumerate(filter(lambda x: "c" in str(x), list1))]

<强>输出

[&#39; list1&#39;,&#39; list2&#39;,&#39; list3&#39;,&#39; list4&#39;]