【问题标题】:Assigning value to concatenated characters python为连接的字符python赋值
【发布时间】:2015-02-18 21:17:57
【问题描述】:

我正在尝试解决一个问题,将值分配给一个变量会很方便,变量本身就是两个字符串的连接。显然,我收到了错误:

SyntaxError: can\'t assign to operator

我正在尝试使其工作的部分代码:

char1 = 'a'
char2 = 'b'

char1+char2 = [element1,element2]

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

【问题讨论】:

  • 改用字典?
  • 好吧,我想我把问题简单化了。我想用变量 ab 创建一个列表。这是字典无法做到的。我想我应该编辑我的问题。
  • 这通常不是你想做的事情。说出你想解决什么问题,获得关于在 Python 中通常如何解决这类问题的建议会更有用。
  • ab = 'newstring' ?

标签: python shell scripting


【解决方案1】:

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

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]

【讨论】:

  • 解决了这个问题。我没有意识到列表可以用作字典中键:值对中的值。谢谢!
【解决方案2】:

这是我可以看到的一种方法:

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

【讨论】:

  • 哎呀...对不起 John1024 你打败了我!
【解决方案3】:

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

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

char3 = char1 + char2

print char3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多