将字符串值转换为列表

时间:2017-01-14 16:49:36

标签: python string list

我查了一个类似的问题,但找不到答案。

Fnactot = []
Fnacdebut = 0 
Fnacnombre = 4
Fnac = 0
Fnac1 = ['major lazer', 'goooya', 1000]
Fnac2 = ['phoenix', 'wolfgang', 1300]
Fnac3 = ['jain', 'makemba', 1150]
Fnac4 = ['dj shadow', 'aphex', 2100]

while Fnacdebut < Fnacnombre :
    Fnacdebut = Fnacdebut + 1
    fnac = 'Fnac'+str(Fnacdebut)
    print fnac 

我确定答案很容易......但我在那里挠头......

我想打印我的列表Fnac1,Fnac2,......但我正在打印字符串值fnac ='Fnac'+ str(Fnacdebut)。 如何ca,我将fnac的字符串结果转换回我的名单...

提前感谢...

3 个答案:

答案 0 :(得分:0)

不要尝试生成变量名称。它涉及使用eval评估变量名称,这是不好的做法。

只需从头开始创建一个连贯的数据集

只使用列表清单:

fnac = [['major lazer', 'goooya', 1000],
['phoenix', 'wolfgang', 1300],['jain', 'makemba', 1150],['dj shadow', 'aphex', 2100]]

然后:

for f in fnac:
    print(f)

或(为了更好地控制显示,并且由于列表中有整数,您必须将它们转换为字符串):

for f in fnac:
    print(",".join(str(x) for x in f))

答案 1 :(得分:0)

嗯,有办法做到这一点:print(locals()[fnac])将打印列表内容。

最好还是将列表存储在另一个列表或元组中,然后通过迭代新列表来打印它们:

fnacs = (['major lazer', 'goooya', 1000],
         ['phoenix', 'wolfgang', 1300],
         ['jain', 'makemba', 1150],
         ['dj shadow', 'aphex', 2100])

for i, fnac in enumerate(fnacs):
    print("Fnac%d" % i, fnac)

答案 2 :(得分:0)

Fnactot = []
Fnacdebut = 0 
Fnacnombre = 4
Fnac = 0
Fnac1 = ['major lazer', 'goooya', 1000]
Fnac2 = ['phoenix', 'wolfgang', 1300]
Fnac3 = ['jain', 'makemba', 1150]
Fnac4 = ['dj shadow', 'aphex', 2100]

while Fnacdebut < Fnacnombre :
    Fnacdebut = Fnacdebut + 1
    fnac = 'Fnac'+str(Fnacdebut)
    print globals()[fnac]

这样做,但更好的方法是:

lst1 = ['major lazer', 'goooya', 1000]
lst2 = ['phoenix', 'wolfgang', 1300]
lst3 = ['jain', 'makemba', 1150]
lst4 = ['dj shadow', 'aphex', 2100]
all_lists = [lst1, lst2, lst3, lst4]

for lst in all_lists:
    print lst