如何定义一个函数以基于另一个变量使用具有特定名称的变量来创建变量? (Python 3)

时间:2020-05-30 00:44:17

标签: python python-3.x

示例:

x = 5

list(我想在此变量的名称中将x的值放在这里)= 1

P.S .:我知道在这种情况下不能使用括号。

所以我可以做:

print(list5)

并返回1

3 个答案:

答案 0 :(得分:1)

你不能。

这不是真的,但是对于几乎每一个提出此问题的案例,答案都是“您无法做您想做的事”或“您想要做的是使用列表”。

您提到有一个名为list5的变量。因此,也许您真正想要的是列表列表之类的东西。看看Python Data Structures教程,看看那里的内容是否与您要解决的问题相符。

您可以尝试以下方法。它们使用嵌套的理解,但您不必这样做-您可以根据需要键入初始化程序。

list_of_lists = [[i ** 2 for i in range(j + 1, j * 2)] for j in range(5)]

dict_of_lists = { 'list' + str(j): [i ** 2 for i in range(j + 1, j * 2)]
                  for j in range(5)
                }

答案 1 :(得分:0)

通常,正如其他评论所描述的那样,您不应动态创建变量,因为出于评论概述的原因,一般不应这样做。假设您仍然出于任何原因仍要这样做,这是代码:

.input-field input[type=text]:focus {
  border-bottom: 1px solid #4ec632;
  box-shadow: 0 1px 0 0 #4ec632;
}

答案 2 :(得分:-1)

从技术上讲,可以通过修改locals()返回的字典来做到这一点:

x = 5
locals()[f"list{x}"] = 1
print(list5)  # prints 1

这是不必要的复杂操作,很容易意外覆盖您本来不是想要的内容。创建自己的字典或列表几乎总是会更好:

x = 5
my_vars = {
    f"list{x}": 1
}
print(my_vars["list5"])  # prints 1