将字符串值转换为lis

2024-05-16 06:58:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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(fnacfirst)的字符串值。 我如何将fnac的字符串结果转换回列表的名称。。。你知道吗

提前谢谢。。。你知道吗


Tags: 字符串答案fnacstrmajorphoenixwolfganglazer
3条回答

不要试图生成变量名。它涉及使用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))

有一种方法可以做到: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)
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

相关问题 更多 >