使用for loop和.format将列表列表转换为其子列表



我想将此想法应用于单独命名列表中的列表。说L = [[0,1,2],[3,4,5],[6,7,8]],我希望第一个列表([0,1,2])分开以给出L0 = l[0](列表中的第一个列表标记为L0(。我的想法是:

for i in range(11):
  'l{}'.format(i) = l[i]

但是错误消息是:can't assign to function call。我希望最终完成这项工作:

for i in range(11):
    list( 'l{}'.format(i)) = l[i]

为了将字符串转换为列表。任何人都知道一种做这项工作的方法还是胸像是胸围?

最简单的方法是使用元组包装/解压缩

L = [[0,1,2],[3,4,5],[6,7,8]]
L0, L1, L2 = L
print(L0)
print(L1)
print(L2)

结果:

[0, 1, 2]
[3, 4, 5]
[6, 7, 8]

您可以动态创建变量(但是我认为这不是一个好主意(。在可以使用dict的情况下,不应使用动态创建变量。如果您不知道如何创建动态变量,那可能意味着您不应该。网络中有足够的信息来查找快速的Google搜索以了解为什么。

在这里说是一种使用dict方法来完成您想做的事情的方法。

L = [[0,1,2],[3,4,5],[6,7,8]]
my_dict = {}
for x in range(len(L)):
    my_dict[("L%s"%(x))] = L[x]

print (my_dict)

结果是:

{'L0': [0, 1, 2], 'L1': [3, 4, 5], 'L2': [6, 7, 8]}

那么,您需要做的就是与dict互动以从这些列表中获取所需的任何东西。

您可以使用 exec执行字符串,就像是python代码:

for i in range(len(L)):
    exec('L{} = L[{}]'.format(i, i))

在您的情况下会给您变量L0,L1,L2。

L = [[0,1,2],[3,4,5],[6,7,8]]
myDict = {}
for index,inner_list in enumerate(L):
  key = 'L'+str(index)
  myDict[key]=inner_list
print(myDict)  

结果

{'L0': [0, 1, 2], 'L1': [3, 4, 5], 'L2': [6, 7, 8]}

相关内容

  • 没有找到相关文章

最新更新