寻找一种优雅的方法来寻找两个不同顺序的单词元组列表之间的交集

2024-09-29 03:31:22 发布

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

我想最好是举个例子来说明我在努力做什么。关键是我在寻找一种优雅的方式。你知道吗

假设我有两个元组列表:

x = [('a', 'c', 'e'), ('k', 'n')]
y = [('e', 'd', 'w'), ('c', 'a', 'e'), ('n', 'k')]
z = set(x).intersection(y)

如果我计算x和y的交集,我得到一个空集。你知道吗

我的目标是找出y中有两个元素与x中的两个元素相同,而我不关心元组的不同顺序。另外,我想得到列表y的匹配元素的索引

对于我来说,x[0]和y[1]是相同的(同样,不关心顺序),我想要得到的索引是1,对于x[1]和y[2]都是相同的,在这种情况下它应该返回索引2。你知道吗

关于如何优雅地完成这件事有什么想法吗?你知道吗


Tags: 元素目标列表顺序方式情况例子关键
1条回答
网友
1楼 · 发布于 2024-09-29 03:31:22

你不能做你的xyset吗? 例如:

x = [('a', 'c', 'e'), ('k', 'n')]
y = [('e', 'd', 'w'), ('c', 'a', 'e'), ('n', 'k')]
set_x = set(frozenset(a) for a in x)
set_y = [frozenset(a) for a in y]
[y_element in set_x for y_element in set_y]

返回:[False, True, True]

如果需要实际索引:

[i for i, y_element in enumerate(set_y) if y_element in set_x]

返回:[1, 2]

相关问题 更多 >