Выбор пункта в определенном месте из списка списков - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть список списков:

my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]

Я хочу выбрать случайный список из всех списков и напечатать строку во 2-м месте.

Я попробовал:

for item in my_list:
    print(random.sample(item[1],len(item[1]))

Ответы [ 4 ]

0 голосов
/ 15 декабря 2018

Просто выберите случайный индекс в my_list, используя либо random.randint, либо random.choice.Это:

from random import randint
list_choice = my_list[randint(0, len(my_list-1))]

и это:

from random import choice
list_choice = choice(my_list)

заставит list_choice иметь случайное значение из my_list.Затем вы можете сделать это, чтобы напечатать второе значение в вашем списке:

print(list_choice[1])

Чтобы числа казались более случайными, вы можете использовать random.seed и time.time, чтобы установить случайное начальное число на текущее время:

import random
import time

random.seed(time.time())

После всего этого полный код должен выглядеть так:

import random
import time

my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],
           ['xy','zabc','def'],['ghij','klmnop','qrs']]

random.seed(time.time())
list_choice = random.choice(my_list)

print(list_choice[1])
0 голосов
/ 14 декабря 2018

Не повторять.Выберите случайный индекс и получите ваш строковый результат, присутствующий в этом индексе.

import random
my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]
random_index = random.randint(0, len(my_list) - 1) # will generate random index from range 0 to 3
word_index = 1
my_list [random_index][word_index]
0 голосов
/ 15 декабря 2018

Давайте разберемся.Вот список списков:

my_lists = [
    ['abc', 'defg', 'hij'],
    ['klm', 'nopqrs', 'tuvw'],
    ['xy', 'zabc', 'def'],
    ['ghij', 'klmnop', 'qrs']
]

Я хочу выбрать случайный список из всех списков

chosen_list = random.choice(my_lists)

... и распечатать строкуво 2-м месте.

print(chosen_list[1]) # remember Python uses zero-based indexing
0 голосов
/ 14 декабря 2018
my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]
import random
print (random.choice(my_list)[1])
...