快速浏览列表并获取每一对项目

2024-10-01 02:30:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想快速浏览下面的字符串列表

collections = [u'Room Designers', u'BCRF', u'House']

我想实现的是列表中三个元素的6个组合-

^{pr2}$

下面是我的代码

zipall = [zip(i,j) for i in collections for j in collections if i!=j]

我得到了:

[[(u'R', u'B'), (u'o', u'C'), (u'o', u'R'), (u'm', u'F')], [(u'R', u'H'), (u'o', u'o'), (u'o', u'u'), (u'm', u's'), (u' ', u'e')], [(u'B', u'R'), (u'C', u'o'), (u'R', u'o'), (u'F', u'm')], [(u'B', u'H'), (u'C', u'o'), (u'R', u'u'), (u'F', u's')], [(u'H', u'R'), (u'o', u'o'), (u'u', u'o'), (u's', u'm'), (u'e', u' ')], [(u'H', u'B'), (u'o', u'C'), (u'u', u'R'), (u's', u'F')]]

有什么更好的方法呢?谢谢您!!在


Tags: 字符串代码in元素列表forifzip
1条回答
网友
1楼 · 发布于 2024-10-01 02:30:34

如果你想按照你写的方式来做,你需要省略最后一个zip调用,因为这将把字符串分解成各自的字符,并将这些字符配对起来。在

zipall = [(i,j) for i in collections for j in collections if i!=j]

# [(u'Room Designers', u'BCRF'), (u'Room Designers', u'House'), (u'BCRF', u'Room Designers'), (u'BCRF', u'House'), (u'House', u'Room Designers'), (u'House', u'BCRF')]

但是对于这类问题,^{}库非常方便。对于这个特定的问题,您可以使用^{}来产生2个元素的所有排列。对于排列(与组合相反),配对的顺序很重要。在

^{pr2}$

相关问题 更多 >