1

標準形式のタプルを含むリストがあります。

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

どうすればこれを達成できますか?

4

2 に答える 2

5

リスト内包表記を使用できます:

foo_list = [(get_foo(bar1), bar2, bar3/2) 
            for bar1, bar2, bar3, bar4 in bar_list]

注意してください、私はあなたが-raising と自己参照ではなくfoo1equal を意味していると仮定していますget_foo(bar1)NameError

foo1 = get_foo(foo1)
于 2013-05-02T02:56:34.513 に答える
-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)
于 2013-05-02T02:55:53.580 に答える