我正在尝试解决一个问题,即为变量赋值是很方便的,变量本身就是两个字符串的串联。显然,我收到了错误:
SyntaxError: can\'t assign to operator
我试图使其成功的部分代码:
char1 = 'a'
char2 = 'b'
char1+char2 = [element1,element2]
我正在尝试将列表分配给名为ab的新变量。我为我的天真而道歉。建议好吗?
答案 0 :(得分:5)
可以按照您的要求进行操作,但不建议这样做。相反,使用字典来保存您在运行中创建其名称的变量:
mydict = {}
char1 = 'a'
char2 = 'b'
mydict[char1+char2] = [1, 2]
print(mydict)
这导致:
{'ab': [1, 2]}
如您所见,字典现在有一个键ab
,您的值已分配。如果要访问此变量,请使用mydict['ab']
。
也可以使用动态创建的名称为类实例分配属性。例如:
class A(object):
pass
a = A()
setattr(a, char1+char2, [3, 4])
print(a.ab)
这将打印:
[3, 4]
属性也可以通过动态构建的名称访问:
print(getattr(a, char1+char2))
打印:
[3, 4]
答案 1 :(得分:2)
这是我可以看到的一种方式:
>>> c1 = 'a'
>>> c2 = 'b'
>>> vars = {}
>>> vars[c1+c2] = [1,2,3,4]
>>> print vars['ab']
[1, 2, 3, 4]
答案 2 :(得分:1)
看起来你只是在第三个变量上翻了你的逻辑。构建变量列表,然后分配一个新变量来连接该列表。 像这样:
char1 = ('a')
char2 = ('b')
char3 = char1 + char2
print char3