我想遍历 alist
并将当前元素与其他元素分开。像这样 :
for e in the_list:
function_call(e, <the_list but e>)
有没有一种优雅的方式来做到这一点?
我想遍历 alist
并将当前元素与其他元素分开。像这样 :
for e in the_list:
function_call(e, <the_list but e>)
有没有一种优雅的方式来做到这一点?
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:])
一个很好的解决方案,读起来(合理地)好,不需要搞乱索引。
>>> 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)