Как получить случайное значение из словаря, который находится в списке

Итак, у меня есть список (показан ниже), и мне нужно случайным образом получить доступ к одному из словарей в списке и распечатать его:

например Instagram, 346, Платформа социальных сетей, США

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

    data = [
{
    'name': 'Instagram',
    'follower_count': 346,
    'description': 'Social media platform',
    'country': 'United States'
},
{
    'name': 'Cristiano Ronaldo',
    'follower_count': 215,
    'description': 'Footballer',
    'country': 'Portugal'
},
{
    'name': 'Ariana Grande',
    'follower_count': 183,
    'description': 'Musician and actress',
    'country': 'United States'
}
]

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

user56700 17.11.2022 15:25

Загляните в random.choice. Неважно, что объекты в списке являются словарями. Выбор случайного объекта из списка — стандартная задача со стандартным решением.

John Coleman 17.11.2022 15:27

Когда я использую random.choice, он выводит весь список, а я просто хочу распечатать один словарь.

FraneCal 17.11.2022 15:30

@FraneCal random.choice(data) дает мне один словарь...

Abdul Aziz Barkat 17.11.2022 15:32

@AbdulAzizBarkat Окей, для меня это важно сейчас, но не раньше. Я не знаю почему.

FraneCal 17.11.2022 15:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
6
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать random.choice:

import random

random.choice(data)

Я знаю об этом, и он распечатывает весь список, а я хочу распечатать один словарь.

FraneCal 17.11.2022 15:31
Ответ принят как подходящий
import random
print(random.choice(data))

#Output1
{'name': 'Cristiano Ronaldo', 'follower_count': 215, 'description': 'Footballer', 'country': 'Portugal'}

print(random.choice(data))
#Output2
{'name': 'Ariana Grande', 'follower_count': 183, 'description': 'Musician and actress', 'country': 'United States'}

# UPDATE 2 (To select more than one key from same random dictionary)

random_index = random.randrange(len(data)-1)
print(data[random_index]["name"])
print(data[random_index]["follower_count"])

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

FraneCal 17.11.2022 15:32

Проверьте приведенный выше результат. мы получим только один случайный словарь.

Bharat Adhikari 17.11.2022 15:34

Ладно, а как мне только распечатать, скажем, имя без остатка в словаре, например. Кристиано Роналду?

FraneCal 17.11.2022 15:36

печать (случайный выбор (данные) ["имя"])

Bharat Adhikari 17.11.2022 15:38

Еще одна вещь, и я закончил, могу ли я распечатать больше значений из одного словаря, например. (это не работает, просто чтобы показать вам): print(random.choice(data)["name"]["follower_count"]), чтобы распечатать: Christiano Ronaldo, 215

FraneCal 17.11.2022 15:41

В словаре Python «ключи», такие как «name», «follower_count», уникальны, поэтому . Либо вы делаете print(random.choice(data)["name"]) и print(random.choice(data)["follower_count"]) в отдельной строке, либо запускаете цикл for.

Bharat Adhikari 17.11.2022 15:49

Если я распечатаю его в отдельной строке, я получу значения из другого словаря, и я хочу получить значения из того же словаря. Как я могу это сделать?

FraneCal 17.11.2022 15:56

Ты прав. Я сделал #UPDATE для вышеуказанного решения. Это сработает

Bharat Adhikari 17.11.2022 16:04

@FraneCal вам нужен хороший учебник по Python. random.choice(data) дает вам случайный словарь из вашего списка, вы не можете просто присвоить его переменной и использовать его? random_dict = random.choice(data) а потом print(random_dict["name"]) и т.д.?

Abdul Aziz Barkat 17.11.2022 16:12

@AbdulAzizBarkat Сейчас я изучаю Python.

FraneCal 17.11.2022 16:18

Другие вопросы по теме