选择和比较列列表中的每个元素。

问题描述 投票:0回答:1

我正试图解决这道难题。 只有一个五位数的数字 n,使以下十个数字中的每一个数字都在相同的位置上有正好一个共同的数字作为 n. 查找 n.

我想得到这样的。https:/i.stack.imgur.comhufIc.jpg。

对于每一列,选择每一个元素,并沿列比较是否匹配相同的数字。然后,将其追加,得到每列中匹配的数字。

我应该在这里加上if's。

L = [[0, 1, 2, 6, 5],
 [1, 2, 1, 7, 1],
 [2, 3, 2, 5, 7],
 [3, 4, 5, 4, 8],
 [4, 5, 9, 7, 0],
 [5, 6, 2, 3, 6],
 [6, 7, 3, 2, 4],
 [7, 8, 0, 8, 4],
 [8, 9, 8, 7, 2],
 [9, 9, 4, 1, 4]]

 for c in range(10):
     for r in range(5):
         print(L[c][r], end=' ')
 print()
python list
1个回答
0
投票

我能想到的最简单的方法是得到变量中一列的所有值,然后检查是否有任何值出现超过一次。解决方法是这样的。

L = [
    [0, 1, 2, 6, 5],
    [1, 2, 1, 7, 1],
    [2, 3, 2, 5, 7],
    [3, 4, 5, 4, 8],
    [4, 5, 9, 7, 0],
    [5, 6, 2, 3, 6],
    [6, 7, 3, 2, 4],
    [7, 8, 0, 8, 4],
    [8, 9, 8, 7, 2],
    [9, 9, 4, 1, 4]
    ]

for r in range(5):
    val = [L[c][r] for c in range(10)]
    for i in range(10):
        if val[i] in val[:i]:
            print(val[i], end=" ")
            break
    else:
        print(0, end=" ")
print()

0
投票
L = [
    [0, 1, 2, 6, 5],
    [1, 2, 1, 7, 1],
    [2, 3, 2, 5, 7],
    [3, 4, 5, 4, 8],
    [4, 5, 9, 7, 0],
    [5, 6, 2, 3, 6],
    [6, 7, 3, 2, 4],
    [7, 8, 0, 8, 4],
    [8, 9, 8, 7, 2],
    [9, 9, 4, 1, 4]
    ]

for col_index in range(5):
    col= [row[col_index] for row in L]
    duplicate = [x for x in col if col.count(x) > 1]
    if len(duplicate) == 0:
        print(0, end=" ")
    else:
        print(duplicate[0], end=" ")
print()
© www.soinside.com 2019 - 2024. All rights reserved.