Почему Python оборачивает элементы списка в кортежи?

Питон оборачивает каждый элемент списка, после которого стоит запятая, в кортеж.
fio = {},
age = {},
date = {},
diagnoz = {}

columns = [
		fio,
		age,
		date,
		diagnoz,
]
print(columns)

Получаю вот этот результат:
[({},), ({},), ({},), {}]
Я собственно пытаюсь в цикле добавлять данные в словари. Но из-за того что каждый элемент словаря завернут в кортеж, я не могу это сделать и получаю ошибку:
TypeError: 'tuple' object does not support item assignment
  • Вопрос задан
  • 570 просмотров
Решения вопроса 2
@fireSparrow
В первых трёх строках запятые не нужны.

Перевод строки - уже достаточный разделитель инструкций.
А запятая для разделения инструкций не используется, только для разделения элементов в разных последовательностях. Её следует применять внутри скобок (либо круглых, либо квадратных, либо фигурных). Если вы используете запятую без скобок, то интерпретатор считает, что подразумеваются круглые скобки (т.е. кортеж).

Т.е. писать нужно так:

fio = {}
age = {}
date = {}
diagnoz = {}

Кстати, переменная diagnoz - это вы какую-то медицинскую систему пишите? Я просто сам в медицинском центре работаю :))
Ответ написан
@Fixid
Уберите запятые после {}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
crazyzubr
@crazyzubr
Python backend-developer
Потому что запись
x = ('string',)
y = (1,)

Равнозначна
x = 'string',
y = 1,
Ответ написан
Комментировать
chewarer
@chewarer Автор вопроса
Всем спасибо.
Я скопировал эти строки из списка, а на запятые не обратил внимания.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы