我试图创建一个不包含该列表的[1]索引的列表(出于递归目的)。但是,当我尝试执行此操作时,通过实例化一个空列表,然后将列表的其余部分附加到该列表中,输出显示该列表为空。我想知道是否有特定的原因或概念,为什么它没有创建我想要的特殊列表。
a = [1,2,3,4,5]
print(list().append(0).append(a[1:]))
输出应为[1、3、4、5],但应为“无”。
当然,我可以创建一个函数并将其组合在一起,但是感觉并不那么直观或优雅。
答案 0 :(得分:2)
阅读文档。 append
是list
类方法,可更改对象。它没有返回值; None
是默认设置。您的表情会减少为
print(None.append([2, 3, 4, 5]))
反过来,其返回值为None
。
您只需使用
new_list = a[1:]
答案 1 :(得分:1)
append
追加到列表并返回None
。您应该将此新列表保存到变量,然后打印它。例如
newlist = list() # or just[]
newlist.append(0)
newlist.extend(a[1:]) # OP had append, but you probably meant "extend"
print(newlist)
答案 2 :(得分:1)
append
方法向其对象添加元素,但返回None
。您想要的是列表添加:
print(list() + [0] + [a[1:]])
答案 3 :(得分:1)
您需要创建一个新列表,然后从那里扩展它:
b = [0]
b.extend(a[1:])
答案 4 :(得分:1)
屁股@Daniel Roseman说过,append函数返回None。
如果我了解您要实现的目标,请创建一个小功能并执行以下操作:
a = [1,2,3,4,5]
def addAndReturn(ls, elem):
ls.append(elem)
return ls
print(addAndReturn(addAndReturn(list(), 0), a[1:]))
结果:
[0,[2,3,4,5]]