比较嵌套列表理解中的数字

compare numbers in Nested List Comprehensions

谁能帮我比较嵌套列表中的数字 l=[[6, 6], [15, 24], [85, 18]];例如:

for i in l:
    if i[0][0]>i[0][1]:
        print("B")
    elif i[0][0]<i[0][1]:
        print("A")
    else:
        print("T")



Expected Output :
  T
  A
  B

  
    

你可以试试这个:

l=[[6, 6], [23, 24], [85, 18]]

print(*['B' if i[0]>i[1] else ('A' if i[0]<i[1] else 'T')  for i in l], sep = "\n") 

或者如果你想使用你原来的解决方案,只需删除 i[0][0] 因为你正在访问每个列表的循环,所以 i 是每个嵌套列表,例如[6, 6], [15, 24], [85, 18]

l=[[6, 6], [15, 24], [85, 18]]
for i in l:
    if i[0]>i[1]:
        print("B")
    elif i[0]<i[1]:
        print("A")
    else:
        print("T")

两个输出:

T
A
B
    

使用有意义的变量使您的代码更具可读性

for subarray in l:
    a,b = subarray
    if a > b:
        print("A")
    elif a < b:
        print("B")
    else:
        print("T")

您在进入外部 for 循环后访问数组,因此请像在一维数组中一样使用索引号。

for i in l:
  if i[0] > i[1]:
    print("B")
  elif i[0] < i[1]
    print("A")
  else
    print("T")

可以:

l = [[6, 6], [15, 24], [85, 18]]
out = ["B" if x > y else ("A" if x < y else "T") for x, y in l]
print(out)
# ['T', 'A', 'B']

我会用吗?不太确定,但这实际上取决于您的要求。

your_list = [[6, 6], [15, 24], [85, 18]]

def compare(ab):
    a,b = ab
    if a > b: return "B"
    if a < b: return "A"
    if a == b: return "T"
        
res = "\n".join(map(compare, your_list))
print(res)