Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2012 20:13:53

AlexSSpirit
От:
Зарегистрирован: 2012-03-07
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

Создаю прогу и одной из её функций должно быть - выведение случайных слов(существительных), которые никогда не должны повторяться(почти никогда)

Нашёл список из 14тысяч слов, хотел извлечь слова в прогу

infile=open('words.txt','r')
line=infile.read()
word=line.split()
import  random  as  random_number
random_number.choice(word)


Но для моего пенька 4го, обработка текстового файла из 14тысяч слов, практически невозвожна, и даже если сократить текстовый файл втрое, тормозит пайтон жутко.

Возможно ли как-нибудь извлекать случайные индексы без каких либо тормозов??



Офлайн

#2 Ноя. 7, 2012 20:33:09

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

AlexSSpirit
обработка текстового файла из 14тысяч слов, практически невозвожна
Вы чего-то недоговариваете, даже на моем калькуляторе на все уходит менее секунды. Либо файл гораздо больше, либо показан не весь код, так как в том, что есть тормозить нечему.

Офлайн

#3 Ноя. 7, 2012 20:47:19

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

Я проверил на своем 1.6 атлоне - все нормуль…



Офлайн

#4 Ноя. 8, 2012 08:31:06

ad3w
От: Hua Hin, Thailand
Зарегистрирован: 2012-01-27
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

Залейте этот файл - попробуем.



Офлайн

#5 Ноя. 8, 2012 11:54:38

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

import  random  as  random_number
infile=open('words.txt','r')
words=infile.readlines()  # прочитает файл построчно сразу в list
random_number.choice(words)
попробуйте так.

Офлайн

#6 Ноя. 8, 2012 14:49:22

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Извлечение случайного слова из огромного списка

# smartphone Symbian OS9.1 =).
from random import choice
from time import clock
t0 = clock()
p = 'e:\\B\\Zzzros.txt' # size: 808KB
text = open(p).read()
t1 = clock()
L = text.split()
t2 = clock()
result = choice(L)
t3 = clock()
print 'open: ', t1-t0, ' s'
print 'split: ', t2-t1, ' s'
print 'choice: ', t3-t2, ' s'
print 'words: ', len(L), ' word'
print 'result: ', repr(result)
Python 2.2.2 (#0, Nov  7 2008, 14:24:30) [C] on symbian_s60
Type "copyright", "credits" or "license" for more information.
Kaapython 10.2 beta
> ===== RESTART =====
>>> 
open:  1.125  s
split:  4.046875  s
choice:  0.0  s
words:  106920  word
result:  '\xf1\xf2\xf0\xee\xea\xee\xe9'
>>>

Отредактировано dimy44 (Ноя. 8, 2012 14:51:31)

Офлайн

#7 Ноя. 12, 2012 18:05:11

AlexSSpirit
От:
Зарегистрирован: 2012-03-07
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Извлечение случайного слова из огромного списка

хз ребят, попробовал снова, ща вссё путём без тормозов, может долбаный касп грузил проц в это время


Всем спасибо всёравно



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version