выбрать квалифицированный элемент из 2D-массива в новый список - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть двумерный массив целочисленных значений:

[[26, 9, 24, 13],
 [16, 14, 39, 29]]

Мне нужно выбрать число> = 14, заканчивающееся на 9 или 4, а не 39. Он возвращает 1, если критерии соответствуют, в противном случаевозвращается 0, т. е.

[[0, 0, 1,0],
 [0,0,0,1]]

обновлено: код, предложенный Tomothy32

result = result = [[int(x >= 14 and x % 10 in (4, 9) and x != 19) for x in sl] for sl in X]

другой подход с вложенным циклом

def test(X):
    out = [[0]*len(X[0]) for _ in range(len(X))]
    for i in range(len(X)):
        for j in range(len(X[i])):
            check = X[i][j]
            if check>=14 and check%5==4 and check!=39:
                out[i][j] = 2
    return out

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Изменить эти утверждения:

if element >=14 and element !=39: 

на

if element >=14 and element !=39 and element%10==9: 
0 голосов
/ 27 апреля 2019

Вы можете использовать понимание списка:

x = [[26, 9, 43, 13],
     [16, 14, 39, 29]]
result = [[int(x >= 14 and x % 10 == 9 and x != 39) for x in sl] for sl in x]
print(result)
# [[0, 0, 0, 0], [0, 0, 0, 1]]

Чтобы получить последнюю цифру, используйте оператор остаток / по модулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...