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,第二个分配给 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 回答