#python
Вопрос:
Я знаю, как случайным образом выбрать что-то из списка. Я хочу случайным образом выбрать список, а затем случайным образом выбрать вещь из этого списка, чтобы распечатать ее, но я также хочу иметь возможность распечатать список, в котором находится эта вещь.
Скажи, что есть это:
a = [a1, a2, a3]
b = [b1, b2, b3]
Если он выберет b2, я хочу, чтобы он напечатал «b2, b», так как b2 находится в b. Если он выберет a1, он должен напечатать a.
Я новичок в python, так что помощь была бы отличной.
Редактировать:
import random
lists = ['first', 'second']
first = ['one', 'word']
second = ['two', 'more', 'and']
selected = random.choice(random.choice(lists))
print(selected)
Комментарии:
1. Во-первых, вам нужен список списков.
2. Ладно, я постараюсь это прояснить. Я составил список списков.
3. @lemuria Я думаю, что вы близки, но еще не совсем там.
4.
lists
это список строк, а не список списков.5. Вот почему. Синтаксис Python 2.7 отличается от синтаксиса python 3.
Ответ №1:
import random
possible_lists: [[]] = [
[1,2], # list a
[3,4] # list b
]
selected_list = random.choice(possible_lists)
selected_item = random.choice(selected_list)
print(selected_item, selected_list)
Python 2
import random
possible_lists = [
[1,2], # list a
[3,4] # list b
]
selected_list = random.choice(possible_lists)
selected_item = random.choice(selected_list)
print selected_item, selected_list
Ответ №2:
Определите first
и second
сначала. Затем используйте эти переменные lists
, а не строки с именами переменных.
import random
first = ['one', 'word']
second = ['two', 'more', 'and']
lists = [first, second]
selected_list = random.choice(lists)
selected_string = random.choice(selected_list)
print(selected_list, selected_string)
Комментарии:
1. умный ответ, он намного лучше моего
2. Это не решает вопрос Распечатайте случайный элемент И распечатайте список, в котором он находится
3. Я обновил ответ, чтобы выбрать список и элемент списка отдельно.
Ответ №3:
import random
lists = ['first', 'second']
first = ['one', 'word']
second = ['two', 'more', 'and']
listused=random.choice(lists)
if listused=="first":
selected = random.choice(first)
else:
selected=random.choice(second)
print selected
print listused
Ответ №4:
Вам нужен список списков, чтобы вы могли выбрать из базового списка, в котором находятся все списки, случайный список со случайным значением. Вы можете сделать, например, вот так:
import random
lst = [['first', 'second'],
['one', 'word'],
['two', 'more', 'and']
]
ran_lst = random.choice(lst)
ran_val = random.choice(ran_lst)
print(ran_lst, ran_val)