python - 获取包含相同元素的列表分组的元组(或列表)列表?
问题描述
我在 python 中有一个包含多个列表的字典,我尝试做的是获取一个元组(或列表)列表,其中列表与相同的元素分组,无论它们是否被排序。例如:
dict_1 = {
"pv_0": [1, 2, 3, 4, 5],
"pv_1": [2, 4, 6, 8, 10],
"pv_2": [1, 3, 5, 7, 9],
"pv_3": [3, 4, 1, 2, 5],
"pv_4": [2, 3, 4, 5, 6],
"pv_5": [3, 4, 5, 6, 2],
"pv_6": [1, 2, 3, 5, 4],
"pv_7": [5, 9, 7, 3, 1],
"pv_8": [2, 4, 6, 8, 10],
"pv_9": [1, 3, 5, 6, 7],
}
我希望得到以下结果:
Result = [
("pv_0", "pv_3", "pv_6"),
("pv_2", "pv_7"),
("pv_1", "pv_8"),
("pv_4", "pv_5"),
("pv_9"),
]
我该如何解决这个问题?
解决方案
据我所知,您需要一个键元组,其中每个值都相同。
def get_matching_keys(data: dict) -> list:
# first, make everything a set
for key in data:
data [key] = set (data [key]) # makes order irrelevant
results = []
duplicates = []
for key, value in data.items():
if key in duplicates: continue # we already did this
result = [key]
duplicates.append (key)
for key2, value2 in data.items():
if key == key2: continue # skip the same key
else:
if value == value2:
result.append (key2)
duplicates.append (key2) # make sure we don't do it again
results.append (result)
return results
推荐阅读
- javascript - 将threejs网格包裹在另一个网格上
- webpack - JSON 文件包含在包中
- java - 应用程序在 AWT 线程进行本机调用以更新游标时崩溃
- react-native - 在 React Native 中使用 Paytm 支付导致问题
- c++ - 在给定的字符串集中查找常见字符的数量?
- javascript - 如何在threejs中计算3d对象位置并将对象放置在场景中以使多个3d对象不相互重叠
- github - 本地 Jekyll 无法生成正确的 RSS 提要
- php - 如何在 Html 表中用第二行的第二列减去第一行的第一列
- react-native - React Native 更改图片来源
- python - 蟒蛇新手。想知道是否有人可以检查我的代码是否解决了问题