Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 13, 2016 16:39:45

casiy
Зарегистрирован: 2014-01-18
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Рандомно получить список из файла

Есть txt файл такого содержания

x =  ['python', 'c++', 'JavaScript', 'c#', 'Pascal', 'bash', 'shell', 'AutoIt']
y =  ['windows', 'ubuntu', 'mac', 'android', 'vista', 'xp', 'win2000']
z =  ['fara', 'rama', 'goga', 'google', 'zaza', 'faza', 'dura', 'puma']
и т.д. (списков много)

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

Отредактировано casiy (Янв. 13, 2016 16:42:40)

Офлайн

#2 Янв. 13, 2016 23:35:08

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Рандомно получить список из файла

есть модуль random, там есть все необходимые функции. Например shuffle перемешает передаваемую последовательность случайным образом. Смотрите документацию, думаю все прояснится



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Янв. 14, 2016 12:07:05

koward
Зарегистрирован: 2016-01-14
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Рандомно получить список из файла

Как один из вариантов для тебя

import random
x =  ['python', 'c++', 'JavaScript', 'c#', 'Pascal', 'bash', 'shell', 'AutoIt']
y =  ['windows', 'ubuntu', 'mac', 'android', 'vista', 'xp', 'win2000']
z =  ['fara', 'rama', 'goga', 'google', 'zaza', 'faza', 'dura', 'puma']
all_data = [x, y, z]
random.shuffle(all_data)
for l in all_data:
	first_element, data = l[0], l[1:]
	random.shuffle(data)
	data1 = list(set(data))[:3]
	data1.insert(0, first_element)
	print(data1)

Отредактировано koward (Янв. 14, 2016 12:08:04)

Офлайн

#4 Янв. 14, 2016 17:57:07

casiy
Зарегистрирован: 2014-01-18
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Рандомно получить список из файла

Вот немножко переделал ответ koward и огромное ему спасибо

import random
x =  ['python', 'c++', 'JavaScript', 'c#', 'Pascal', 'bash', 'shell', 'AutoIt']
y =  ['windows', 'ubuntu', 'mac', 'android', 'vista', 'xp', 'win2000']
z =  ['fara', 'rama', 'goga', 'google', 'zaza', 'faza', 'dura', 'puma']
all_data = [x, y, z]
for i in random.sample(all_data, 1):
    data = i[0]
    data1 = i[1:]
    q = random.sample(data1, 3)
    print(data + '\n' + '\n'.join(q))

Это конечно все то как я хотел ,но все же, всем спасибо за ответы.

Отредактировано casiy (Янв. 14, 2016 17:58:44)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version