2015-04-15 2 views
4
new_set = set('Hello') 

Я хочу просто { «Hello»} вместо каждого отдельного символа как часть набораКак добавить строку в set(), если она не сломает строку?

+2

ад, вы получили 3 различных способов делать это - не Stackoverflow замечательно? ;) – alfasin

+1

да это! очень быстро! – dustinyourface

ответ

4

Вы можете создать набор и добавлять элементы к ним позже:

new_set = set() 
new_set.add('Hello') 
5

Используйте набор буквальным:

new_set = {'hello'} 
5

Конструктор множеств ожидает итерации, и он добавит каждый элемент итерации к множеству. Строки повторяемы. Следовательно, каждая буква строки добавляется в набор.

Это, как говорится, сделать это вместо того, чтобы:

new_set = set(['Hello']) 
0

Несколько способов с таймингами (с помощью питона 2.7.8 на Windows 7):

Буквальное:

my_set = {"Hello"} 

Использование timeit:

python -m timeit "s = {'Hello'}" 
1000000 loops, best of 3: 0.0819 usec per loop 

Empt у Set:

my_set = set() 
my_set.add("Hello") 

Использование timeit:

python -m timeit "s = set()" "s.add('Hello')" 
1000000 loops, best of 3: 0.222 usec per loop 

В ролях итератора в комплекте:

my_set = set(("Hello",)) # Equivalent to line below 
my_set = set(["Hello"]) # Equivalent to line above 

Использование timeit:

python -m timeit "s = set(('Hello',))" 
1000000 loops, best of 3: 0.237 usec per loop 
+0

Какой смысл использовать время? –

+0

Целью было показать, какой из них наиболее быстрый (в случаях, когда скорость имеет значение). Кроме того, я написал свой ответ в то время, когда потребовалось три других ответа, поэтому я решил, что должен добавить что-то, чтобы сделать его менее избыточным. – Gustav

+0

из-за того, как задан вопрос, если вы действительно хотели проверить свою скорость, я бы просто дал возможные методы и сказал, какой из них самый быстрый. –

Смежные вопросы