【问题标题】:python list of char append with + [duplicate]char的python列表附加+ [重复]
【发布时间】:2019-03-16 17:31:28
【问题描述】:

我之前在 Python 中发现了一些让我感到困惑的东西,假设我得到了一个字符列表 l = ['a','b']

当我执行l + 'c' 时,它给了我“只能将列表(而不是“str”)连接到列表的错误。但是l += 'c' 很好,这给了我l = ['a', 'b', 'c']。有谁知道这是为什么? (我在 Python 3.7.0 上)

【问题讨论】:

  • 我不同意这种做法。这个问题专门针对列表类型上的++=。关于++= 脱糖的一般行为的问题不是一回事。
  • 副本是否真的回答了为什么在这种特殊情况下 list + str 不起作用,但list += str 被解释为list += list(str)
  • += 表示“用给定的项目扩展这个列表”(在这种情况下,项目是字符串中的字符序列)。 + 表示“将这两个列表连接成一个新列表”。

标签: python


【解决方案1】:

使用l + 'c',您正在尝试合并字符串和列表。但是对于l += 'c',您基本上与l.extend('c') 做的相同。

【讨论】:

  • 这并不完全正确。 l += 'c'extend,而不是 append 到列表中。
  • ...这就是为什么l += 'cd' 会给你l = ['a', 'b', 'c', 'd']
  • 明确地说,+= 适用于 any 可迭代,字符串也是可迭代的。这不是字符串的特殊情况。只是+=(和extend,正如已经指出的)的自然行为在这里起作用,而+ 专门用于列表。不过答案很好!
  • 对不起,我不知道扩展部分
猜你喜欢
  • 2014-12-09
  • 2012-11-25
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 2016-06-20
相关资源
最近更新 更多