python - 从更大的列表列表中提取列表列表
问题描述
从以下列表列表中,我试图提取两个从最大列表派生的列表,如下所示:
第一个将包含离零最远的值 lol [2] 给定给定的键 lol [0]
第二个将包含离零最远的值 LOL [3] 给定给定的键 lol [0]
#Mx1 #Mx2
lol = [['1', 'Peter' , -104.08, 36.85],
['1', 'Apolonia', 629.58,-1103.34],
['1', 'Laplace' , 1032.51, 169.48],
['1', 'Werner' , -308.18, -121.48],
['3', 'Peter' , -987.18, 142.02],
['3', 'Apolonia',-1153.71, -8.32],
['3', 'Laplace' , -88.08, -13.65],
['3', 'Carl' , -139.34, 1531.84],
['6', 'Daniel' , 141.7, -535.2],
['6', 'Danilo' , 14.77, 55.82],
['6', 'Milo' , 74.6, 28.5]]
for i, j in enumerate(lol[:-1]):
print(j[0])
print(lol[i+1][0])
if j[0] == lol[i+1][0]:
pass
结果应该是这样的:
Mx1 = [[‘1’,’Laplace’, 1032.51],
[‘3’,’Apolonia’, -1153.71],
[‘6’,’Daniel’, 141.70]]
Mx2 = [[‘1’,’Apolonia’, -1103.54],
[‘3’,’Carl’, 1531.84],
[‘6’,’Daniel’, -535.2]]
我将非常感谢这个问题的反馈及其逻辑,亲切的问候。
解决方案
尝试:
lol = [
["1", "Peter", -104.08, 36.85],
["1", "Apolonia", 629.58, -1103.34],
["1", "Laplace", 1032.51, 169.48],
["1", "Werner", -308.18, -121.48],
["3", "Peter", -987.18, 142.02],
["3", "Apolonia", -1153.71, -8.32],
["3", "Laplace", -88.08, -13.65],
["3", "Carl", -139.34, 1531.84],
["6", "Daniel", 141.7, -535.2],
["6", "Danilo", 14.77, 55.82],
["6", "Milo", 74.6, 28.5],
]
tmp1, tmp2 = {}, {}
for a, b, c, d in lol:
if a not in tmp1 or abs(tmp1[a][2]) < abs(c):
tmp1[a] = [a, b, c]
if a not in tmp2 or abs(tmp1[a][2]) < abs(d):
tmp2[a] = [a, b, d]
mx1 = list(tmp1.values())
mx2 = list(tmp2.values())
print(mx1)
print(mx2)
印刷:
[["1", "Laplace", 1032.51], ["3", "Apolonia", -1153.71], ["6", "Daniel", 141.7]]
[["1", "Apolonia", -1103.34], ["3", "Carl", 1531.84], ["6", "Daniel", -535.2]]
推荐阅读
- excel - 条件格式的多条件公式(OUT OF MY ELEMENT HERE)
- bison - proto3-lexer3.c : 没有这样的文件或目录
- java - Docker 无法在没有 docker-compose 的情况下访问 jar 文件
- html - 嗨,谁能帮我完成我的 CSS 作业?
- javascript - 在 PHP 中增加会话变量的问题。它只增加一次
- azure-ad-b2c - Azure AD B2C - 具有 HRD、域提示和 MFA 的自定义策略
- javascript - 无需重新加载页面即可进行幻灯片放映
- powershell - 输出文件时使用 Powershell 环境变量作为字符串
- laravel - Eloquent:转换一个 sql 请求
- modelica - 在 Dymola 中使用和不使用内联集成有什么区别?