修改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,工作到了完美(我最后插入了错误的变量,伟大的假设)!