кажется, что это актуальная проблема:
вход показывает вложенный список с номерами и их подсчета в подсписков: [[86, 4], [67, 1], [89, 1] ...] вывод: мне нужно знать, является ли число с кол уже в списке (чтобы не добавить ему второй раз), но количество неизвестно во время цикла для
Существует два способа решения этой проблемы. Во-первых, если список не имеет дубликатов, просто преобразовать его в словарь:
numbers = dict([[86,4],[67,1],[89,1]])
Теперь каждое число является ключевым, и рассчитывать значение. Далее, если вы хотите знать, является ли число в словаре, у вас есть много способов сделать это:
# Fetch the number
try:
count = numbers[14]
except KeyError:
print('{} does not exist'.format(14))
# Another way to write the above is:
count = numbers.get(14)
if not count:
print('{} does not exist'.format(14))
# From a list of a numbers, add them only if they don't
# exist in the dictionary:
for i in list_of_numbers:
if i not in numbers.keys():
numbers[i] = some_value
Если уже дублирует в первоначальном списке, вы можете преобразовать его в словарю, но вам нужно сделать некоторую дополнительную работу, если вы хотите сохранить все значения для чисел:
from collections import defaultdict
numbers = defaultdict(list)
for key,value in original_list:
numbers[key].append(value)
Теперь, если у вас есть повторяющиеся номера, все их значения сохраняются в списке. Вы все еще можете следовать той же логике:
for i in new_numbers:
numbers[i].append(new_value)
Только теперь, если число уже существует, то new_value
только будет добавлен в список существующих значений.
Наконец, если все, что вы хотите сделать, это добавить в список, если первый номер не существует:
numbers = set(i[0] for i in original_list)
for i in new_numbers:
if i not in numbers:
original_list += [i, some_value]
вы можете дать пример ввода и вывода? – user3
можете ли вы добавить пример случайного списка и желаемого результата? трудно понять, что вам нужно – Elisha
Ввод показывает вложенный список с числами и их подсчетами в подсписках: [[86, 4], [67, 1], [89, 1], ...] вывод: мне нужно знать, находится ли число со своим подсчетом уже в списке (чтобы не добавлять его во второй раз), но подсчет неизвестен во время цикла for – user3017048