Python 使用for循环和.format将列表列表转换为其子列表

Python 使用for循环和.format将列表列表转换为其子列表,python,list,for-loop,string.format,Python,List,For Loop,String.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] 但错误消息如下:无法分配给函数调用。我希望最终实现这一目标: for i in range(11): list( 'l{}'.format(i)) = l[i] 以便将字符串转换为列表

我想应用这个想法将一个列表列表分离成单独命名的列表。说
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]
但错误消息如下:
无法分配给函数调用
。我希望最终实现这一目标:

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

以便将字符串转换为列表。任何人都知道这样做的方法,或者这个想法是失败的吗?

您可以使用
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]]

L0, L1, L2 = L

print(L0)
print(L1)
print(L2)
结果:

[0, 1, 2]
[3, 4, 5]
[6, 7, 8]
您可以动态创建变量(但是我认为这不是一个好主意)。如果可以使用
dict
,则不应使用动态创建变量。如果您不知道如何创建动态变量,这可能意味着您不应该这样做。网上有足够多的信息,可以通过谷歌快速搜索来了解原因

这里所说的是一种使用
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
交互,从这些列表中获取您需要的任何内容

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]}

您当然可以动态地“创建”变量(隐式地使用字典)。但通常情况下,他们更喜欢只使用字典。您面临的错误是一个基本的python语法问题。如果你读了一些关于字典的书,回来发表一个更具体的问题怎么样?:)