2015-06-04 5 views
1

Как я могу перебирает список питона, добавить каждый элемент в другой список, за исключением текущего элемента:Как пропустить текущий элемент в списке питона

list = [1,2,8,20,11] 

for i,j in enumerate(list): 
    print j[i+1:] 
#this will only give [2,8,20,11] then [8,20,11],[20,11], [11] 

#but I want something like [2,8,20,11], [1,8,20,11],[1,2,20,11]... etc. 
#then 1,8,20,11 
#then 
+4

Во-первых, не назвать переменную как 'list' –

+1

Даже ваш неправильный код не даст результат, который вы скажете. Вы попробовали? – Dair

ответ

2

вы можете использовать list slicing как:

lst = [1,2,8,20,11] 
for i in xrange(len(lst)): 
    print lst[:i]+lst[i+1:] 

>>> [2, 8, 20, 11] 
    [1, 8, 20, 11] 
    [1, 2, 20, 11] 
    [1, 2, 8, 11] 
    [1, 2, 8, 20] 
3

Похоже, вы после combinations, например:

>>> from itertools import combinations 
>>> data = [1,2,8,20,11] 
>>> list(combinations(data, 4)) 
[(1, 2, 8, 20), (1, 2, 8, 11), (1, 2, 20, 11), (1, 8, 20, 11), (2, 8, 20, 11)] 
Смежные вопросы