如何在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]
是出于同样的原因是错误的)。当你调用一个函数时,参数放在括号中 ,即圆括号 :( ()
。
其次,你试图做的是“采取一个序列,并把它的每一个元素在这个序列的末尾,按照原来的顺序”。 这是拼写extend
。 append
是“拿这个东西,把它放在列表的最后, 作为一个单一的项目 , 即使它也是一个列表 ”。 (回想一下,列表是一种序列。)
但是,你需要知道i+1:i+4
是一个特殊的结构,它只出现在方括号内(从一个序列中获得一个切片)和大括号(创build一个dict
对象)。 你不能把它传递给一个函数。 所以你不能用这个extend
。 您需要对这些值进行一系列的处理,而自然的做法是使用range
函数。
你也可以:
newlist += mylist[i:i+22]