Python将变量附加到列表[关闭]

Posted

技术标签:

【中文标题】Python将变量附加到列表[关闭]【英文标题】:Python appending variables to the list [closed] 【发布时间】:2016-08-01 07:00:25 【问题描述】:

您好,我似乎无法正常工作,我有一个清单

  a = ['Name': 150,'number': 100,'Name': 190, 'number': 200,'Name': 190, 'number': 300]

我需要附加一些变量,但我不断收到错误

a.append ('Name':  + Name + ',' + 'number'+ ':' + Number)
TypeError: bad operand type for unary +: 'str'

完整代码:

    a = ['Name': 150,'number': 100,'Name': 190, 'number': 200,'Name': 190, 'number': 300]
    Name = '150'
    number = '10'

    a.append ('Name':  + Name + ',' + 'number'+ ':' + Number)


    def get_number(name):
           return lambda x: x['number'] if x['Name']==name else 0

    names = sorted(set(map(lambda x: x['Name'], a)))
    result = ['Name':name,'number':sum(map(get_number(name), a)) for name in names]

    string = str(result)
    remove = "[],'"
    for i in range (0,len(remove)):
           string =string.replace(remove[i],"")
    b = string

    print b

如何将数据附加到此列表中?

【问题讨论】:

你为什么要把列表转成字符串,然后用字符串操作来删除一个项目?! 我正在转换为所有列表,因为我正在获取名称和数字。需要添加相同的名称,以便我可以看到名称的总数,然后将其添加到 xml 元素中 【参考方案1】:

您正在尝试附加字典。这应该有效:

a.append('Name': Name, 'number' :  Number)

您采用的写作风格采用了一些非常可爱的直觉,但这不是它的工作原理:) 字典会自动按照其他字典的布局方式设置自己的格式,您只需要为它们提供正确的键和值。

您收到错误的原因是因为您放在前面的:。这告诉 Python 您正在使用字典 - 但之后您立即输入了 +。现在 Python 向右看,看到一个字符串,认为“好吧,你正在尝试将两个字符串相加”,向左看,看到一个不是字符串的冒号。 Python 很困惑:它需要一些可以在左边解释为字符串的东西,否则这将不起作用。所以它会抛出一个错误。

编辑:关于一元运算符的更正,请参阅@PM 2Ring 的 cmets!

【讨论】:

“向左看,看到一个冒号,它不是字符串”。不。解析器已经处理了冒号,现在它正在寻找一个有效的表达式来构建一个与'Name' 键相关联的值。它尝试将 + 解释为求和运算符(字符串表示字符串连接),它将其解释为 unary positive 运算符(如错误消息所述),但是没有为字符串定义运算符。 (cont) 一元正数为数字定义的,所以我们可以做a = +5a = +b之类的事情,其中​​b是一个数字。确实,这没什么用,但它与a = -b 对称,并且在解析器中构建处理一元正数的成本很低。 :)【参考方案2】:

你不需要在这里使用+:你可以把变量值放在键之后,就像你第一次声明a的值一样:

a.append ('Name': Name, 'number': Number)

+ 用于连接字符串或添加数字,但这里我们尝试创建一个字典。这样做的格式是:

"Key": value, "Another Key": value, ...

+ 符号不是必需的,因为您没有加入任何东西,您只是使用 Python 的内置语法创建字典。

【讨论】:

感谢您的解释,这对我帮助很大。【参考方案3】:

在您的代码中,错误很明显,TypeError 也清楚地告诉您错误在哪里。您无需在语句中使用“+”。只需将代码编辑成如下所示:

a.append ('Name': Name, 'number': Number)

“+”用于附加字符串,在您的情况下,您将变量分配给一个值。希望能帮助到你。 :)

【讨论】:

以上是关于Python将变量附加到列表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

附加到字符串变量[关闭]

Python:将关键字保存在列表中并将另一个列表添加到其中的单个单词中[关闭]

如何将事件附加到 DOM 的所有节点? [关闭]

在 Python 中创建大型数组 [关闭]

未调用的对象的属性错误[关闭]

带有附加文本的文件目录重定向[关闭]