4

我想遍历 alist并将当前元素与其他元素分开。像这样 :

for e in the_list:
    function_call(e, <the_list but e>)

有没有一种优雅的方式来做到这一点?

4

2 回答 2

7

You could use enumerate and slice the list:

for index, elem in enumerate(the_list):
    function_call(elem, the_list[:index] + the_list[index + 1:])
于 2013-04-22T17:54:06.350 回答
4

一个很好的解决方案,读起来(合理地)好,不需要搞乱索引。

>>> from itertools import combinations
>>> data = [1, 2, 3, 4]
>>> for item, rest in zip(data, 
                          reversed(list(combinations(data, len(data)-1)))):
...     print(item, rest)
... 
1 (2, 3, 4)
2 (1, 3, 4)
3 (1, 2, 4)
4 (1, 2, 3)
于 2013-04-22T18:05:57.297 回答