Превращение отрицательных значений в 0 в списке, который также имеет буквы - PullRequest
0 голосов
/ 16 октября 2018

Так что вот сделка.У меня есть вложенные списки - большая часть списка - это числа, но в конце у них есть буква, которая используется для идентификации списка.

Например:

alist = [[0, -2, 3, 5, 10, -20, 'a'],[0, -4, 3, 30, 40, -15, 'a']]

Я хочу, чтобы это былобыть преобразован в:

alist = [[0, 0, 3, 5, 10, 0, 'a'],[0, 0, 3, 30, 40, 0, 'a']]

Я знаю, как превратить отрицательные значения в 0, используя операторы if и для циклов, но я не знаю, как это сделать аккуратно, когда буквы также присутствуют всписок.Есть идеи?

1 Ответ

0 голосов
/ 16 октября 2018

Использование понимания списка

Пример:

alist = [[0, -2, 3, 5, 10, -20, 'a'],[0, -4, 3, 30, 40, -15, 'a']]
res = [[j if (isinstance(j, str) or (j > 0)) else 0 for j in i ]for i in alist]
print(res)

или

alist = [[0, -2, 3, 5, 10, -20, 'a'],[0, -4, 3, 30, 40, -15, 'a']]
res = []

for i in alist:
    temp = []
    for j in i:
        if isinstance(j, str) or (j > 0):
            temp.append(j)
        else:
            temp.append(0)
    res.append(temp)

print(res)

Вывод:

[[0, 0, 3, 5, 10, 0, 'a'], [0, 0, 3, 30, 40, 0, 'a']]

Примечание:

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