Итак, у меня есть список (показан ниже), и мне нужно случайным образом получить доступ к одному из словарей в списке и распечатать его:
например 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'
}
]
Отвечает ли это на ваш вопрос? Генерировать случайные целые числа от 0 до 9 или еще лучше Как случайным образом выбрать элемент из списка?
Загляните в random.choice
. Неважно, что объекты в списке являются словарями. Выбор случайного объекта из списка — стандартная задача со стандартным решением.
Когда я использую random.choice, он выводит весь список, а я просто хочу распечатать один словарь.
@FraneCal random.choice(data)
дает мне один словарь...
@AbdulAzizBarkat Окей, для меня это важно сейчас, но не раньше. Я не знаю почему.
Вы можете использовать random.choice:
import random
random.choice(data)
Я знаю об этом, и он распечатывает весь список, а я хочу распечатать один словарь.
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"])
Я хочу напечатать только один случайный словарь из списка.
Проверьте приведенный выше результат. мы получим только один случайный словарь.
Ладно, а как мне только распечатать, скажем, имя без остатка в словаре, например. Кристиано Роналду?
печать (случайный выбор (данные) ["имя"])
Еще одна вещь, и я закончил, могу ли я распечатать больше значений из одного словаря, например. (это не работает, просто чтобы показать вам): print(random.choice(data)["name"]["follower_count"]), чтобы распечатать: Christiano Ronaldo, 215
В словаре Python «ключи», такие как «name», «follower_count», уникальны, поэтому . Либо вы делаете print(random.choice(data)["name"])
и print(random.choice(data)["follower_count"])
в отдельной строке, либо запускаете цикл for.
Если я распечатаю его в отдельной строке, я получу значения из другого словаря, и я хочу получить значения из того же словаря. Как я могу это сделать?
Ты прав. Я сделал #UPDATE для вышеуказанного решения. Это сработает
@FraneCal вам нужен хороший учебник по Python. random.choice(data)
дает вам случайный словарь из вашего списка, вы не можете просто присвоить его переменной и использовать его? random_dict = random.choice(data)
а потом print(random_dict["name"])
и т.д.?
@AbdulAzizBarkat Сейчас я изучаю Python.
что бы я ни пробовал, это не сработало. Пожалуйста, поделитесь тем, что вы пробовали, тогда мы сможем помочь вам понять, что не так.