【发布时间】:2021-09-10 23:03:06
【问题描述】:
我求操作列表如下:
# key
example = [[2, 2, -10, 'Yes'],
[2, 8, 21, 'Yes'],
[2, 19, 14, 'Non'],
[2, 30, -22, 'Non'],
[4, -15, 31, 'Yes'],
[4, 2, 17, 'Yes'],
[4, 3, -90, 'Non']]
# What I have tried through dictionaries
dictsum = dict()
for i in example:
if i[0] in dictsum.keys():
if i[3] == "Yes":
dictsum[i[0]][0] = dictsum[i[0]][0]+i[1]
dictsum[i[0]][1] = dictsum[i[0]][1]+i[2]
else:
dictsum[i[0]] = [i[1], i[2]]
onlysum = [[k,v[0], v[1]] for k,v in dictsum.items()]
如前所述,所有行 'i[1]' 和 'i[2]' 都已添加,尊重它们的键 'i[0]' 和条件 'i[3]'。
如果 i[3] == "Non" 则我尝试找到离零最远的值,并根据其对应的键 'i[0]' 添加该值
应该是这样的:
result = [[2, 10 + 30, 11 +(-22)],
[4, -13 + 3, 48 +(-90)]]
# Finally
result = [[2, 40, -11],
[4, -10, -42]]
我澄清一下,这是我自己提出的一个示例,以了解在这些情况下如何操作列表,我不是专家。如果有人知道如何为您提供解决方案和反馈,我很感激您的分享,亲切的问候。
【问题讨论】:
-
如果你有
[2, 19, -22, "Non"]和[2, 30, 14, "Non"]。哪一个被认为是“离零最远”? -
那么,对于每个键 i[0],您想要(所有“是”元素和最多一个“非”元素)的
[i[1], i[2]]的坐标总和?鉴于至少有 2 个坐标可能,您指的是哪个“值”离零最远?这是一个离零最远的绝对值吗?你如何在 -1 和 1 之间进行决胜局? -
解决方案是 [2, 30, -22] 因为我尝试做的是对于每个密码,在这种情况下 (2),我得到的值离零最远。 @not_speshal
-
离零最远的值是,如果我们有 -1 和 1,那么在这种情况下它将是正值。非常好的问题,非常感谢。 @kcsquared
-
我坚持使用正整数 [2, 20, 20, "no"],非常好的问题,谢谢。 @not_speshal
标签: python python-3.x list dictionary