合并字符串和整数以分配给值

时间:2018-10-24 23:53:39

标签: python variables merge

我有一个自己不能解决的问题。
我在数组中有200个值。每个值都需要一个乘数。所以我想要的是将每个值分配给带有计数器的字符串。例如:

w1 = 22
w2 = 44
w3 = 42
w4 = 78

所以我尝试的是:

count = 1
'w' + count = np.random.randn()

但是错误是:SyntaxError:无法分配给运算符

我在做什么错!!

编辑: 在Joran Beasley的第一个制作人之后,我的代码更改为:

weights = {}
count = 1

while (count <= len(data[0])):

weights['w%s'%count] = 0
count += 1

print(weights)

但是当我打印数据时,我看到了一个非常奇怪的命令。这是我得到的样本:

{'w75': 0, 'w74': 0, 'w77': 0, 'w76': 0, 'w71': 0, 'w70': 0, 'w73': 0, 'w72': 0, 'w79': 0, 'w78': 0, 'w234': 0

如您所见,有一些数字以正确的顺序排列,但大多数数字是随机放置的。这正常吗?

5 个答案:

答案 0 :(得分:0)

您需要使用字典

data = {}

count = 1
data['w%s'%count] = 22

print(data)

如果您真的希望变量不在字典中,则可以使用locals()globals()字典,但我不建议这样做

globals()['w%s'%count] = 22
print(w1)

或者,如果您觉得自己的生活非常危险,可以使用exec(请注意,这不是一个好主意!

exec("w%s = 23"%count)
print(w1)

答案 1 :(得分:0)

'w' + count = np.random.randn()

在操作的赋值(左侧)上有一个运算符(+),这在Python中是禁止的

答案 2 :(得分:0)

您的错误是由于您的$ brew unlink python $ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb $ brew switch python 3.6.5 $ pip install tensorflow 号(赋值)在加号(基本算术运算符)的右侧而导致的。您不能为正在执行操作的对象分配值。

例如,如果我尝试运行代码

=

我会得到相同的错误错误

>>> 'hello' + '123' = 'world'

如果您要动态创建变量名(如您所描述的(即 File "<stdin>", line 1 SyntaxError: can't assign to operator w1等),那么阅读this question的答案可能会有所帮助,因为像字典这样的数据结构非常适合以这种方式存储信息。

答案 3 :(得分:0)

'w' + count = np.random.randn()

这是您的问题所在。 Python不了解您要为变量w1分配值,而是认为您正在尝试将值转换为其他值,这是不可能的。

您尝试执行的操作完全符合逻辑,但不起作用-即使您创建字符串“ w1”,Python也不会将其与相同名称的变量关联。

您最好的选择可能是使用以“ w1”为键的字典。

答案 4 :(得分:0)

据我所知,您要执行的操作在python中是不可能的。您可以将每个值放在列表中:

w = []
for I in range(10):
    w.append(I * 22)

则w [0]等于0,w [1]等于22,依此类推。 或者您可以使用字典。设置与列表选项非常相似。