Редактирование списка в Python
Задача: Посчитать кол-во единиц в каждом элементе списка и если их больше или равно 2, то заменить этот элемент на "YES", в противном случае - "NO".
Код, который я имею на данный момент:
# Кол - во элементов списка
number = int(input())
# Список элементов
tasks = []
for element in range(number):
# Вручную вводим элементы
tasks.append(input())
# Промежуточный список для работы с элементами списка tasks
result = []
for x in range(0, len(tasks) - 1):
# Делим каждый элемент списка tasks на подэлементы
# и записываем в список result
result = tasks[x].split()
# Проходим по каждому элементу списка result
for y in range(0, len(result) - 1):
# Проверка, если в элементе списка result больше или равно 2 единиц
if result.count('1') >= 2:
tasks[x] = "YES"
result.clear()
else:
tasks[x] = "NO"
result.clear()
print(tasks)
Проблема в том, что 1 - ый элемент списка tasks у меня заменяется на строку "YES", а все последующие элементы - нет.
Входные данные:
2
1 0 1
0 0 1
Выходные данные:
['YES', 'NO']
UPD: Проблема решена. Теперь все элементы в исходном списке заменяются на 'YES', 'NO в зависимости от кол - ва единиц в элементе. Исправленный код:
# Кол - во элементов списка
number = int(input())
# Список элементов
tasks = []
for element in range(number):
# Вручную вводим элементы
tasks.append(input())
# Промежуточный список для работы с элементами списка tasks
result = []
for x in range(0, len(tasks)):
# Делим каждый элемент списка tasks на подэлементы
# и записываем в список result
result = tasks[x].split()
# Проверка, если в элементе списка result больше или равно 2 единиц
if result.count('1') >= 2:
tasks[x] = "YES"
result.clear()
else:
tasks[x] = "NO"
result.clear()
P.S Убрал второй цикл, т.к он оказался не нужен.
Цикл for x in range(0, len(tasks)) - 1 заменил на for x in range(0, len(tasks)).