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

Python 如何排除字典中的特定元素?,python,python-2.7,Python,Python 2.7,我想使用我的字典中的一个随机名称,除了名称“name300000.&**”之外,我想跳过它并在选项(my_dict.values())=“name300000.&**”时传递给另一个名称。 所以我做了以下工作,但我在寻找更好的解决方案 from random import choice my_dict = {1: "name1", 2: "name2", 3:"name300000.&**", 4:"name4&quo

我想使用我的字典中的一个随机名称,除了名称“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(元组(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.&**"})))

@adirabargil-well python本机没有构造do,而…Lol抱歉。。。我的错!