TypeError: аргумент типа «тип» не повторяется в python

Я попытался просмотреть каждую строку файла tsv и проверить, существует ли каждое слово в словаре. Функция может извлечь слово из каждого содержимого в каждой строке, но она терпит неудачу, когда ищет, существует ли слово в словаре.

dic = {'films': '0', 'adapted': '1', 'from': '2', 'comic': '3', 'books': '4'}

Формат CSV-файла = [1\tcontent]

def extract_feature(filename):
    with open(filename) as tsv:
        reader = csv.reader(tsv, delimiter = "\t")
        for row in reader:
            for word in row[1].split():
                if word in dict:
                    print(word)

это dic не dict

Jeril 01.03.2019 06:10

Чтобы уточнить комментарий Джерила: вы называете свой словарь «dic»: dic = { ... }. Однако дальше в коде вы называете это «dict»: if word in dict:. Вы не получите ошибку при использовании неопределенной переменной, потому что dict фактически определен: это предопределенный тип словаря. Но теперь вы пытаетесь перебрать сам тип dict, а не ваш словарь dic, что приводит к ошибке.

codingatty 01.03.2019 22:06
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
3 076
1

Ответы 1

if word in dict:

dict — тип словаря, аналогичный list, int, float и т. д.

Не используйте dict в качестве имени переменной.

Почему вы отвечаете на вопросы с опечатками, просто закройте его.

U12-Forward 01.03.2019 06:12

@ U9-Forward Как это поможет спрашивающему?

John Gordon 01.03.2019 06:13

@JohnGordon - Stack Overflow - это не репетиторская служба один на один, это база данных вопросов и ответов. Вопросы предназначены для того, чтобы быть полезными не только одному человеку. Кроме того, OP даже не использовал dict в качестве имени переменной; это была опечатка при попытке сослаться на dic, так что этот ответ в любом случае едва ли поможет спрашивающему.

TigerhawkT3 01.03.2019 06:45

Проблема в том, что опечатка, скорее всего, в его фактическом коде, а не только в опубликованном вопросе. TypeError — это именно та ошибка, которую вы получите при кодировании «if word in dict:». Кажется совершенно очевидным, что OP сделал использует dict в качестве имени переменной. Обратите внимание, что комментарий, о котором идет речь, не из OP. @ Ответ Джона Гордона прямо и ясно указывает на ошибку в коде ОП.

codingatty 01.03.2019 08:21

Другие вопросы по теме