将列表转换为词典引用列表

2024-09-29 01:30:42 发布

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

我有一个字符串列表:

listofdictrefs = ["ws['D4']", "ws['H72']", "ws['B4']"]

这些字符串实际上是字典引用。我想将该列表转换为变量引用,以便将这些变量写入csv行:

csvwriter.writerow(listofdictrefs)

当然,现在它把列表写成字符串。我想知道如何引用与该名称匹配的变量(在本例中是字典条目)。你知道吗


Tags: csv字符串名称列表字典ws条目b4
2条回答

如果ws是dictionary变量的实际名称,那么可以使用eval写出它,尽管这很容易出错。即使在不处理不受信任的输入的情况下(所以,让我们把安全问题放在一边),当可以静态检查时,也会将语法和大量语义分析推到运行时。尽管如此:

csvwriter.writerow(eval(r) for r in listofdictrefs)

但是,如果可能的话,最好保留一个键列表并为wsdict编制索引

keys = ['D4', 'H72', 'B4']
csvwriter.writerow(ws[k] for k in keys)

eval很少是正确的解决方案。你知道吗

在这种情况下可以使用eval。不过,一定要小心使用eval运行未检查的代码!你知道吗

listofdictrefs = ["ws['D4']", "ws['H72']", "ws['B4']"]
ws = {'D4' : 100,'H72' : 50,'B4' : 25}
for ref in listofdictrefs:
    print eval(ref)

你知道吗

100
50
25

相关问题 更多 >