所以,我得到了这个名为otherlist
的列表,我想从list1
添加一些对象。问题是我只得到了他们的订单号,而不是数字的实际值。例如:
otherlist.append(list1[a,a+20,a+20*2,a+20*3])
(其中a
是一个不断变化的数字)
是的,你可能已经注意到我们希望列表中有第20个数字。
怎么做。我收到错误消息:TypeError: list indices must be integers, not tuple
答案 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]