我的列表中包含变量:
BB= [a, b, c]
我想在每个变量中保存它自己的位置值。我的目标然后打印其中一个变量获得位置。
我尝试这样做,但它不起作用:
le = len(BB)
for li in range(0,le):
BB[li]=li
欢迎任何帮助或建议!
答案 0 :(得分:1)
如果要保留原始值,可以使用索引保存元组:
for li in range(0,len(BB)):
BB[li]=(li, BB[li])
这会输出你:
[(0, 'a'), (1, 'b'), (2, 'c')]
答案 1 :(得分:1)
看起来您正在寻找globals()
。
<强>例如:强>
BB= ["a", "b", "c"]
for i, li in enumerate(BB):
globals()[li] = i
print(a, b, c)
注意:最好创建dict并为其指定值。
答案 2 :(得分:0)
您可以创建类似的字典,而不是使用globals()
或locals()
:
BB = [a, b, c] # assume that `a`, `b` and `c` are hashable
positions = { value: index for index, value in enumerate(BB) }
然后,您可以按如下方式访问索引:positions[a]
以获取0
。为了使用字典,您需要列表中的值是可清除的,即它们可以用作字典键。