【发布时间】:2021-06-11 19:34:28
【问题描述】:
我有一个元组列表:
list = [(1,-1),(1,1),(2,0),(3,-9),(3,9),(4,-10),(4,-8),(4,8),(4,10),(5,-25),(5,25),(5,-9),(5,9)]
这是我想做的:
- 首先对每个数字,即 1、2、3、4 和 5,求 abs(第二个值)的最小值。如果有多个最小值,找出所有最小值。例如,对于“1”,(1,-1) 和 (1,1) 都符合条件,因为 abs(-1)=abs(1)
- 在列表中的元组符合条件的相应位置创建另一个列表,在相应位置使用 1,在不符合条件的位置使用 0。答案是
[1,1,1,1,1,0,1,1,0,0,0,1,1]
这是我的代码:
result=[]
temp_first=list[0][0]
temp_second=abs(list[0][1])
result.append(1)
for element in list[1:]:
if element[0]==temp_first:
if abs(element[1])<temp_second:
result[-1]=0
result.append(1)
elif abs(element[1])>temp_second:
result.append(0)
else:
result.append(1)
else:
result.append(1)
temp_first=element[0]
temp_second=abs(element[1])
它给了我[1,1,1,1,1,0,1,1,0,1,0,1,1] 这是不正确的
任何帮助将不胜感激
【问题讨论】:
标签: python data-structures tuples