メソッドがあるとします:
def add_force_coupling(g1, g2, name):
print {(g1,g2): name}
次にコード:
l = 3
for g1 in range(l):
for g2 in range(l):
name = 'G' + str(g1) + str(g2)
add_force_coupling(g1, g2, name)
結果を生成します:
{(0, 0): 'G00'}, {(0, 1): 'G01'}, {(0, 2): 'G02'}, {(1, 0): 'G10'}, ..., {(2, 2): 'G22'}
関数を使用して、これをより Pythonic にしたいと思いmap()
ます。これまでのところ、私は持っています:
list1 = sorted(l*range(l))
list2 = l*range(l)
list3 = ["".join(values) for values in zip(l*l*'G',list(map(str,l1)),list(map(str,l2)))]
map( add_force_coupling, list1, list2, list3 )
これはまさに私が望むことを行いますが、 int リストをstr
inに変換する必要があるため、標準の二重ループよりも醜いですlist3
。また、何が起こっているのかを理解することは非常に困難です。map()
、またはその他の方法で二重ループを書き換えるより良いpythonicの方法はありzip()
ますか?
注: メソッドの変更はオプションではありません