我有一个对象列表list
和一个索引列表indexes
,我想在索引定义的索引处创建一个包含原始列表对象的new_list
。登记/>
我尝试了几种方法,但不能这样做
例如,如果indexes
列表中只有2个索引,为什么以下内容不起作用?
new_list = [list[indexes[0]] + list[indexes[1]]]
很高兴知道解决这个问题的一般方法,对于任何长度的索引列表。
答案 0 :(得分:3)
以下作品:
my_list=['a','b','c','d']
my_indices=[1, 3]
new_list = [my_list[i] for i in my_indices if i < len(my_list)]
上面的列表理解将在my_list
的索引处获得my_indices
的所有元素。 if
就在那里,因此您不会收到IndexError: list index out of range
错误。
您的问题是您使用的+
运算符连接了对象:
>>> [my_list[my_indices[0]] + my_list[my_indices[1]]]
['bd']