如何排除字典中的特定元素?

How to exclude a specific element in a dictionary?

我想使用 my_dict 中的随机名称,除了名称 "name300000.&**" ,我想跳过它并在选择时传递给另一个名称(my_dict.values ()) = "name300000.&**"。 所以我做了以下操作,但我正在寻找更好的解决方案?

from random import choice
my_dict = {1: "name1", 2: "name2", 3:"name300000.&**", 4:"name4"}
if "name3" in choice(my_dict.values()):
    pass
name = choice(my_dict.values())

这是一个可能的解决方案:

from random import choice
my_dict = {1: "name1", 2: "name2", 3:"name300000.&**", 4:"name4"}

name = choice(list(my_dict.values()))
while name == "name300000.&**":
    name = choice(my_dict.values())

print(name)

或者,另一种可能的解决方案是:

from random import choice
my_dict = {1: "name1", 2: "name2", 3:"name300000.&**", 4:"name4"}


while True:
    name = choice(list(my_dict.values()))
    if name != "name300000.&**":
        break

print(name)

关键是你必须模拟一个do while循环才能正确解决这个问题,在python中,因为它不是原生存在的,你可以用这些方式写。

你可以简单地做

name = choice(tuple(set(my_dict.values()) - {"name300000.&**"}))

您可以简单地使用集差函数来删除不需要的值:

from random import choice
my_dict = {1: "name1", 2: "name2", 3:"name300000.&**", 4:"name4"}
name = choice(list(set(my_dict.values()).difference({"name300000.&**"})))