修改Python列表中的所有元组
我有一个包含标准格式元组的列表:修改Python列表中的所有元组,python,list,tuples,Python,List,Tuples,我有一个包含标准格式元组的列表: 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 然后在另一个列表中重新打包
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)...]
我如何才能做到这一点?您可以在这里使用
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)
您可以在此处使用
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)
您可以使用:
注意,我假设你的意思是
foo1
等于get_foo(bar1)
,而不是namererror
-提升和自我参照
foo1 = get_foo(foo1)
您可以使用:
注意,我假设你的意思是
foo1
等于get_foo(bar1)
,而不是namererror
-提升和自我参照
foo1 = get_foo(foo1)
为什么不在创建时将它们添加到新列表中?为什么不在创建时将它们添加到新列表中?太好了,我认为您没有返回
foo0
@eLRuLL OP的预期输出只有3个值:(foo1,foo2,foo3)
。哦,我没有注意到,这太完美了。我不会说完美。。map被认为是非音速map在某些特殊情况下优于LCs对我来说不是问题,我总是采用风格而不是性能-如果它是性能关键代码,我会将这些部分放在CGreat中,我认为您没有返回foo0
@eLRuLL OP的预期输出只有3个值:(foo1,foo2,foo3)
。哦,我没有注意到,这太完美了,我不会说完美。。map被认为是非音速map在某些特殊情况下优于LCs对我来说不是问题,我总是采用风格而不是性能-如果是性能关键代码,我会将这些部分放在CThanks unutbu中,工作到完美(我最后插入了错误的变量,很好的假设)!感谢unutbu,工作到了完美(我最后插入了错误的变量,伟大的假设)!