更多的pythonic方法迭代列表,同时排除元素每次迭代
发布时间:2020-12-16 23:41:01 所属栏目:Python 来源:网络整理
导读:我有以下代码: items = ["one","two","three"]for i in range(0,len(items)): for index,element in enumerate(items): if index != i: # do something with element 基本上我想排除每一个元素一次,并重复其余的.所以对于我上面的列表,我想要以下迭代: “
我有以下代码:
items = ["one","two","three"] for i in range(0,len(items)): for index,element in enumerate(items): if index != i: # do something with element 基本上我想排除每一个元素一次,并重复其余的.所以对于我上面的列表,我想要以下迭代: >“二”,“三” 我现在写的代码似乎有点C -ish,有更好的解决方案吗? (我不想在变量中保存所有可能的列表) 编辑:我没有这样说,但是列表大小不一定是3.它可以是任何大小. 编辑2:看来还有一个误区:如果我有一个N列表,那么我想要N个大小为N-1的列表,每个列表都缺少原始列表中的一个元素. 编辑3:有4个项目的列表,应该给出这个结果: > 1,2,3 解决方法
虽然upvoted喜欢疯狂,我的第一个解决方案不是OP想要的,这是
N列表中,每个都缺少N个原始元素中的一个: >>> from itertools import combinations >>> L = ["one","three","four"] >>> for R in combinations(L,len(L) - 1): ... print " and ".join(R) ... one and two and three one and two and four one and three and four two and three and four 请参阅revision history以了解以下讨论的来源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |