如何在列表中追加多个对象?

时间:2014-01-16 12:51:05

标签: python list append

所以,我得到了这个名为otherlist的列表,我想从list1添加一些对象。问题是我只得到了他们的订单号,而不是数字的实际值。例如:

otherlist.append(list1[a,a+20,a+20*2,a+20*3])

(其中a是一个不断变化的数字) 是的,你可能已经注意到我们希望列表中有第20个数字。

怎么做。我收到错误消息:TypeError: list indices must be integers, not tuple

2 个答案:

答案 0 :(得分:3)

Python list索引不能是元组(以逗号分隔的索引);您一次只能索引一个值。

使用operator.itemgetter()获取多个索引:

from operator import itemgetter

otherlist.extend(itemgetter(a, a + 20, a + 20 * 2, a + 20 * 3)(list1))

或使用生成器表达式:

otherlist.extend(list1[i] for i in (a, a + 20, a + 20 * 2, a + 20 * 3))

甚至

otherlist.extend(list1[a + 20 * i] for i in range(4))

请注意,我使用list.extend()将单个值添加到otherlist,以便它增长4个元素。

答案 1 :(得分:3)

list.extend与生成器表达式一起使用:

my_list.extend(list1[a + 20*i] for i in range(4))

<强>演示:

>>> lis = []
>>> list1 = range(1000)
>>> a = 2
>>> lis.extend(list1[a + 20*i] for i in range(4))
>>> lis
[2, 22, 42, 62]