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

#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)