扩展列表返回无 [重复]
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
【讨论】:
以上是关于扩展列表返回无 [重复]的主要内容,如果未能解决你的问题,请参考以下文章