【问题标题】:Extending list returns None [duplicate]扩展列表返回无 [重复]
【发布时间】:2015-07-11 23:12:35
【问题描述】:

我想在列表中添加一个字符串:

list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1 = list1.extend(ok)

但它打印None。这是为什么呢?

【问题讨论】:

  • 是 list1.extend(ok) ..... 不是 list1 = list1.extend(ok)
  • 你可能会写得更好list1.append(ok)
  • 谢谢您的回答
  • 有趣的是 list1.extend(ok) 实际上确实工作,但它并没有达到你想要的效果……试试看吧。
  • list.extend(object) 是一个“无效”函数。也就是说,它不返回任何值。首先将列表存储到变量中。对变量调用extend,然后传递变量。

标签: python list python-3.x


【解决方案1】:

还有另一种方法,使用模块 numpy 将完成工作https://pypi.org/project/numpy/

在您的示例中具体如下所示:

import numpy as np 
list1 = ['hi','how','are','you','googl']
ok = 'item22'

list1 = list(np.append(list1, [ok]))
print(list)

【讨论】:

  • 这看起来有点矫枉过正哈哈
  • @BrendanMetcalfe 虽然看起来有点矫枉过正,但这将按照 OP 对 extend 的预期方式进行
【解决方案2】:

函数extend 是一个就地函数,即它将对原始列表本身进行更改。来自文档

通过添加 given 列表中的所有项目来扩展列表;相当于 a[len(a):] = L.

因此您不需要将其重新分配回列表变量。

你可以的

list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1.extend([ok])   # Notice brackets here

然后当你print list时它会打印出来

['hi','how','are','you','googl','item22']

更好的方法

使用下面提到的append 是更好的方法。

list1 = ['hi','how','are','you','googl']
ok = 'item22'
list1.append(ok)   # Notice No brackets here

【讨论】:

    猜你喜欢
    • 2016-01-15
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多