@Panda_Code
Сognizer

Почему выражение for i in работает с множеством, как for in in range?

#  создаем множество
a = set('123')
#  получаем доступ к элементам
for i in a: print(i)
>>> {1, 2, 3}
>>> {1, 2, 3}
>>> {1, 2, 3}

Почему так происходит?
И ещё один момент, почему нельзя задать множество, следующим образом:
a = set(1, 2, 3) 
>>> Error
a = set('1,2,3')
>>> {'1', '2', '3'}

Заранее спасибо!
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
‘123’ это строка. А строка - это последовательность символов. Поэтому строку можно превратить в любую другую последовательность, её можно перебирать посимвольно, перегнать её в список посимвольно.
А вот с перенесением строки в множество set() будет облом: ты получишь по одному экземпляру каждого символа из строки :)
Ответ написан
milssky
@milssky
Координатор племени фиолетовых обезьянок
1. Что-то странное у вас
>>> a = set('123')
>>> a
{'2', '3', '1'}
>>> for i in a: print(i)
2
3
1

2. Потому что 1,2,3 неинтерируемая последовательность чисел. Будет работать, если, например, собрать из них список или кортеж : [1, 2, 3] , (1, 2, 3)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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