Получение набора в результате понимания списка.питон - PullRequest
0 голосов
/ 10 февраля 2019

Я пишу понимание списка.Моя цель - получить список взамен, но по какой-то причине я получаю сет, хотя я делаю понимание в списке.В настоящее время у меня есть код, который выглядит следующим образом:

filteredList = {obj.index for obj in myObjectList if filter(obj) == True}

Когда я проверяю тип 'myObjectList', это список, но когда я проверяю тип 'FilterList', это набор.Почему в списке делается понимание, дающее мне набор?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Результат от понимания не зависит от типа данных, на котором вы выполняете понимание.Это связано с тем, как вы устанавливаете результат понимания.В этом случае вы используете фигурные скобки для вашего понимания, поэтому вы получаете set в результате.

Попробуйте вместо этого:

filteredList = [obj.index for obj in myObjectList if filter(obj) == True]

Получится результирующий obj.indexнаходится внутри списка (определяется [] скобками) вместо набора ({} скобки)

0 голосов
/ 10 февраля 2019

Использование фигурных скобок для вашего понимания создает набор или диктат.Вместо этого вы должны использовать квадратные скобки: [obj.index for obj in ...]

...