Есть ли простой способ задать набор для элемента в Python? Вот некоторые методы, которые я использовал:Запрос элемента из набора Python
elem = myset.pop(); myset.add(elem)
elem = random.choice(list(myset))
elem = list(myset)[0]
Каждый из этих методов неэффективен и неуклюж.
Есть ли способ просто спросить что-то вроде elem = myset.get()
, которое возвращает элемент набора без его удаления? Точно так же, как без удаления pop()?
(Конечно, метод, скорее всего, вернется тот же элемент, каждый раз, до тех пор, пока не установятся был изменен другим кодом, но это все равно полезно.)
Ответы, предоставленные до сих пор, используют итераторы, но я бы не сказал, что это проблема с читабельностью, о которой вы говорили в ответе user2357112s. Итераторы - это то, к чему должны стремиться даже неопытные программисты. Не следует опускать полезные функции языка только потому, что кто-то из C не знает их –
@Lord Я согласен в принципе. Большинство программистов увидят эти строки и подумают, что «это немного странно». Первый создает итератор, извлекает одно значение и затем уничтожает его. Второй запускает цикл через набор и немедленно выходит без выполнения каких-либо утверждений. Оба они эффективны, но если не прокомментировать, многие программисты будут обдумывать (хотя бы кратко), как это сделать лучше. – CarpetPython