#python #list #nonetype
Вопрос:
Мне нужно посчитать количество пар элементов, которые равны друг другу
list1 = input("Введите список: ") list2 = list1.split() list3 = [] counter = 0 for i in range(0, (len(list2))): element = list2[i] if element == "": pass elif list2.count(element)//2 gt;= 1: counter = list2.count(element)//2 for a in range(0, (len(list2))): if list2[a] != element: list2 = list3.append(list2[a]) else: list2 = list3.append("") else: pass print(list2) print(counter)
ошибка:
if list2[a] != element: TypeError: 'NoneType' object is not subscriptable
Я не понимаю, чего он хочет от меня и что я сделал не так
Комментарии:
1.
list2 = list3.append(...)
это то место, куда выlist2
превращаетесьNone
по мереlist.append
возвращенияNone
.2. Не могли бы вы также добавить ожидаемый o/p?
Ответ №1:
Код также может быть следующим:
words = input("Введите список: ").split() list3 = [] counter = 0 counted_words = set() for element in words: if element != "" and element not in counted_words: counted_words.add(element) c = words.count(element) // 2 if c gt;= 1: counter = c list3.extend(['' if w == element else w for w in words]) print(list3) print(counter)
Комментарии:
1. Это неверно, мне нужно рассчитать так, чтобы один элемент мог образовывать только одну пару. То есть, если я введу «c c c c», то он должен вернуть 2, а не 8
2. Существует стандартная молуда Python
from collections import Counter
. Вы можете узнать об этом.