扩展列表返回无 [重复]

Posted

技术标签:

【中文标题】扩展列表返回无 [重复]【英文标题】: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,然后传递变量。 【参考方案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

【讨论】:

以上是关于扩展列表返回无 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

集合列表上的Python .sort()返回无[重复]

另一个列表中列表中项目的扩展方法[重复]

通过重复固定范围的值来扩展列表

Java基础笔记5

递归代码返回无 [重复]

对象类型列表和扩展类型的对象列表之间的区别[重复]