如何在Python中在一行中添加多个项目

我有:

count = 0 i = 0 while count < len(mylist): if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]: print mylist[i + 1], mylist[i + 2] newlist.append(mylist[i + 1]) newlist.append(mylist[i + 2]) newlist.append(mylist[i + 7]) newlist.append(mylist[i + 8]) newlist.append(mylist[i + 9]) newlist.append(mylist[i + 10]) newlist.append(mylist[i + 13]) newlist.append(mylist[i + 14]) newlist.append(mylist[i + 19]) newlist.append(mylist[i + 20]) newlist.append(mylist[i + 21]) newlist.append(mylist[i + 22]) count = count + 1 i = i + 12 

我想让newlist.append()语句成为几条语句。

list.extend() 。追加整个序列的方法是list.extend()

 >>> L = [1, 2] >>> L.extend((3, 4, 5)) >>> L [1, 2, 3, 4, 5] 

没有。

首先, append是一个函数,所以你不能写append[i+1:i+4]因为你试图从一个不是序列的东西中分割出一部分。 (你不能得到它的一个元素,或者: append[i+1]是出于同样的原因是错误的)。当你调用一个函数时,参数放在括号中 ,即圆括号 :( ()

其次,你试图做的是“采取一个序列,并把它的每一个元素在这个序列的末尾,按照原来的顺序”。 这是拼写extendappend是“拿这个东西,把它放在列表的最后, 作为一个单一的项目即使它也是一个列表 ”。 (回想一下,列表是一种序列。)

但是,你需要知道i+1:i+4是一个特殊的结构,它只出现在方括号内(从一个序列中获得一个切片)和大括号(创build一个dict对象)。 你不能把它传递给一个函数。 所以你不能用这个extend 。 您需要对这些值进行一系列的处理,而自然的做法是使用range函数。

你也可以:

 newlist += mylist[i:i+22]