2

次のリストのリストがあります。

list_sample = [[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6], [0.021, 0.021, 0.021, 0.021, 0.021, 0.021, 0.021], [0.022, 0.022, 0.022, 0.022, 0.022, 0.022, 0.022],...]

各リストを抽出して、次のような別のリストに関連付けたいと思います。

for i,line in enumerate(list_sample):
    if  i==0:
        Z_level=line
    if i==1:
        XD1=line
    if i==2:
        XD2=line
    .....

これをより効率的に行う方法はありますか?ありがとう

4

4 に答える 4

4

または(RobEarlを補完する)答え、

Z_level, XD1, XD2, ... = list_sample

ただし、list_sample の大きさがわからない場合は、Python で変数を動的に設定する方法を探す必要があります。ここでその一部を確認できます

于 2013-09-30T15:20:51.240 に答える
3

私の読みが正しければ、最初のサブリストを Z_level に、2 番目のサブリストを XD1 に割り当てる必要があります...

Z_level, XD1, XD2 ... = list_sample

3 つだけを割り当てたい場合:

Z_level, XD1, XD2 = list_sample[:3]
于 2013-09-30T15:18:52.733 に答える
2

ループは必要ありません:

Z_level = list_sample[0]
XD1 = list_sample[1]
XD2 = list_sample[2]
...
于 2013-09-30T15:17:33.060 に答える
2

無限に、これを試してみてください...

for i,line in enumerate(list_sample):
    if i == 0:
        vars()["Z_level"] = line
        continue
    vars()["XD"+str(i)] = line

これは単なる楽しみのためですが、おそらくこれを使用しないでください。その理由については、@defuz と @DSM のコメントを読んでください。

これはおそらくより良い解決策です:

lists = {}
for i,line in enumerate(list_sample):
    if i == 0:
        lists["Z_level"] = line
        continue
    lists["XD"+str(i)] = line
于 2013-09-30T15:22:36.000 に答える