我有一个包含标准格式的元组的列表:
bar_list = [(bar1, bar2, bar3, bar4), (bar1, bar2, bar3, bar4), (bar1, bar2, bar3, bar4)...]
虽然我想遍历列表中的每个元组,并为每个元组做出具体的修改,例如:
foo0 = bar1
foo1 = get_foo(foo0) #get_foo(var) being a function
foo2 = bar2
foo3 = bar3/2
然后在另一个列表中重新打包重估的元组:
foo_list = [(foo1, foo2, foo3), (foo1, foo2, foo3), (foo1, foo2, foo3)...]
我怎么能做到这一点?
答案 0 :(得分:5)
您可以使用list comprehension:
foo_list = [(get_foo(bar1), bar2, bar3/2)
for bar1, bar2, bar3, bar4 in bar_list]
注意,我假设你的意思是foo1
等于get_foo(bar1)
而不是NameError
- 提高和自我指涉
foo1 = get_foo(foo1)
答案 1 :(得分:-1)
您可以在此处使用map
:
def func(lis):
bar1,bar2,bar3,bar4=lis
foo0 = bar1
foo1 = get_foo(foo0) #or get_foo(bar1)
foo2 = bar2
foo3 = bar3/2
return foo1,foo2,foo3
bar_list = [(bar1, bar2, bar3, bar4), (bar1, bar2, bar3, bar4), (bar1, bar2, bar3, bar4)...]
foo_list = map(func,bar_lis)