为连接的字符赋值 python

Assigning value to concatenated characters python

我正在尝试解决一个问题,可以方便地为变量赋值,变量本身就是两个字符串的串联。显然,我得到了错误:

SyntaxError: can\'t assign to operator

我试图让它工作的部分代码:

char1 = 'a'
char2 = 'b'

char1+char2 = [element1,element2]

我正在尝试将一个列表分配给一个名为 ab 的新变量。我为我的天真道歉。有什么建议吗?

可以按照您的要求进行操作,但不建议这样做。相反,使用字典来保存您动态创建的名称的变量:

mydict = {}
char1 = 'a'
char2 = 'b'

mydict[char1+char2] = [1, 2]
print(mydict)

这导致:

{'ab': [1, 2]}

如您所见,字典现在有一个键 ab,其中分配了您的值。当你想访问这个变量时,使用 mydict['ab'].

又一个方法

也可以将动态创建的名称分配给 class 实例属性。例如:

class A(object):
    pass

a = A()
setattr(a, char1+char2, [3, 4])
print(a.ab)

这将打印:

[3, 4]

也可以通过动态构造的名称访问属性:

print(getattr(a, char1+char2))

打印:

[3, 4]

这是我看到的一种方法:

>>> c1 = 'a'
>>> c2 = 'b'
>>> vars = {}
>>> vars[c1+c2] = [1,2,3,4]
>>> print vars['ab']
[1, 2, 3, 4]

看起来你只是在第三个变量上翻转了逻辑。构建您的变量列表,然后分配一个新变量来连接该列表。 像这样:

char1 = ('a')
char2 = ('b')

char3 = char1 + char2

print char3