Есть ли лучший способ использовать pop, чтобы нам не приходилось создавать словарь и извлекать элементы

#python

#python

Вопрос:

 pokemon = {

 "retro":"rayquaza",
 "chrome":"zekrom",
  "dark":"zygarde",
 "dark":"mewtwo",
 "mettalic":"dialga",
 "normal":"giratina",
 "light":"vitini",
 "sprite":"reshiram",
 "shiny":"pikachu",
 "shiny":"deoyxs",
}

x = pokemon.popitem()

print("Congratulations you recieved a :",x)
  

Комментарии:

1. Что не так с тем, что вы сейчас делаете?

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

3. Если ваша цель — просто случайным образом выбрать покемона, не удаляя ключ, вы можете использовать random.sample для случайного выбора ключа, а затем, если у вас есть несколько значений в этом ключе, вы можете сделать другой random.sample .

4. Я не совсем понимаю, о чем вы спрашиваете.

5. Было бы очень полезно, если бы вы предоставили некоторую информацию о том, что вы на самом деле пытаетесь сделать. Прямо сейчас вы всегда получите ("shiny", "deoyxs") поэтому весь dict бесполезен…

Ответ №1:

Возможно, вы задаете неправильный вопрос. Часто бывает полезно поделиться своей целью.

Поскольку вы упомянули, что не хотите использовать словарь, похоже, что элементы — это единственное, что вас волнует. Если это так, вы можете альтернативно сохранить имена своих покемонов в списке и использовать .pop() метод.

 pokemon = ['Rayquaza', 'Zekrom', 'Mewtwo']
x = pokemon.pop()
print(f"Congratulations! You received a {x}!")
  

Если вы хотите случайного покемона из списка, вы можете импортировать ‘random’ и использовать random.shuffle() метод в своем списке, прежде чем извлекать элемент.

 import random

pokemon = ['Rayquaza', 'Zekrom', 'Mewtwo']
random.shuffle(pokemon)
x = pokemon.pop()
print(f"Congratulations! You received a {x}!")