繁体   English   中英

修改Python列表中的所有元组

[英]Modifying all the tuples in a Python list

我有一个包含标准格式的元组的列表:

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)...]

我怎么能做到这一点?

你可以使用列表理解

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)

你可以在这里使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM