可以将列表的可变位置保存为自己的值吗?

时间:2018-04-30 06:32:05

标签: python list for-loop

我的列表中包含变量:

BB= [a, b, c]

我想在每个变量中保存它自己的位置值。我的目标然后打印其中一个变量获得位置。

我尝试这样做,但它不起作用:

le = len(BB)
 for li in range(0,le):
      BB[li]=li

欢迎任何帮助或建议!

3 个答案:

答案 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。为了使用字典,您需要列表中的值是可清除的,即它们可以用作字典键。