【发布时间】:2019-04-04 10:38:32
【问题描述】:
我有一本字典,其中的值是包含 2 个或更多元素的列表。 我想根据列表中只有 2 个元素的其他值,对具有 2 个以上元素的值进行切片。
我知道我可以将所有值元素附加到一个列表中,然后只计算最常见的,但我需要保留有关键和字典格式的信息,所以它真的不起作用。而且我似乎无法弄清楚如何解决这个问题。
我的字典是这样的
start_dict = {
'Key1': [243928620, 243938319],
'Key2': [243928620, 243938319],
'Key3': [243928620, 243931757, 243938319],
'Key4': [243928620, 243938319, 243938323],
'Key5': [243928634, 243938316],
'Key6': [243928620, 243938319],
'Key7': [243928634, 243938317],
'Key8': [243928620, 243938329,243938387]
}
我想让所有值列表中的元素 1 保持不变,因为它是一个起始坐标,其余的是给定间隔的潜在结束坐标。
然后,对于那些在其列表中具有超过 2 个元素的值(键 3、4 和 8),我想将该元素保留在其值列表中,这在其他键的其他值列表中最常见,即key3 和 4 的情况,因为它们都包含最频繁的结束坐标 243938319。
如果它们不存在于其他任何一个中,我将保留它们,这是键 8 的情况。
所有键中出现频率最高的值是开始位置 243928620 和结束位置 243938319。所以理想的输出应该是
start_dict = {
'Key1': [243928620, 243938319],
'Key2': [243928620, 243938319],
'Key3': [243928620, 243938319],
'Key4': [243928620, 243938319],
'Key5': [243928634, 243938316],
'Key6': [243928620, 243938319],
'Key7': [243928634, 243938317],
'Key8': [243928620, 243938329,243938387]
}
我似乎无法理解如何做到这一点,如果它甚至可以以一种聪明的方式完成的话。
你们中的任何人都可以帮忙吗?感谢您的宝贵时间。
【问题讨论】:
标签: python list dictionary