Найти - Пользователи
Полная версия: как определить конец списка!
Начало » Python для новичков » как определить конец списка!
1 2
juche-songun
temp = domains.pop(random.random(0,len(domains)))
хотелось бы это сделать красиво, не через
while True:
Буду благодарен за инфу .
sergeek
рандом же не берет аргументов, и причем тут он если нужен конец
domains[-1]
не это надо?
juche-songun
sergeek
рандом же не берет аргументов, и причем тут он если нужен конец
ты хоть знаешь что такое pop? мне надо чтоб цикл перебирал рандомно значения, а когда список станет пустым перешел дальше.
FishHook
Не горячитесь, на этом форуме знают, что такое pop, а Вы, судя по всему, слабо знакомы с питоном. То, чего Вы хотите выглядит странно и чужеродно.
Лично я не понимаю чего Вы хотите.
adray
можно через
while domains:
попать лучше из словаря или deque, а вот это уж точно будет медленнее перемешивания:
temp = domains.pop(random.random(0,len(domains)))
cutwater
Похоже автору нужен random.shuffle, только он не знает как об этом нам сказать.
sergeek
ему нужен двойной оверхед - чтобы список во время итерирования без while рандомно самовыпиливался через pop:
for e in iter((lambda length: lambda :domains.pop(random.randint(0,next(length))))(reversed(range(len(domains)))),[]):
    print(e)
odnochlen
Автор не в курсе про класс сложности и не может сформулировать алгоритм.
juche-songun
Член, как всегда не в тему.
cutwater
Похоже автору нужен random.shuffle, только он не знает как об этом нам сказать.
Увы shuffle 5 лямного списка это пи…… капец, быстрее сделать xrange, а потом seample ему сделать, а потом перебрать через for.

FishHook
Не горячитесь, на этом форуме знают, что такое pop, а Вы, судя по всему, слабо знакомы с питоном. То, чего Вы хотите выглядит странно и чужеродно.Лично я не понимаю чего Вы хотите.
Запостил поздно ночью с просоня, суть вопроса была така есть список 5 лямов надо перебрать его рандомно но хочеться красиво, а не топорно sergeek подсказал, но увы к этому моменту я понял что randit, каждый раз это будет нериально долго.

пример моего решения.
temps=sample(xrange(len(domains)))
for temp in temps:
 print domains[temp]+request

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

Модератор: не забывайте следить за лексикой
adray
Насчет быстрее:
In [11]: l = list(map(str, range(100000)))
In [12]: %timeit random.shuffle(l)
10 loops, best of 3: 144 ms per loop
In [13]: x = xrange(100000)
In [14]: %timeit random.sample(x,100000)
10 loops, best of 3: 159 ms per loop

python2, в третьем в разы медленнее почему-то
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB