我需要知道Python中的变量是字符串还是dict.下面的代码有什么问题吗?
if type(x) == type(str()):
do_something_with_a_string(x)
elif type(x) == type(dict()):
do_somethting_with_a_dict(x)
else:
raise ValueError
Update:我接受了阿维瑟的回答(不过如果有人解释为什么isinstance
比type(x) is
更受欢迎,我会改变主意).
但感谢nakedfanatic提醒我,使用dict(作为 case 陈述)通常比使用if/elif/else系列更干净.
让我详细介绍一下我的用例.如果一个变量是一个字符串,我需要把它放在一个列表中.如果是dict,我需要一个唯一值的列表.以下是我的 idea :
def value_list(x):
cases = {str: lambda t: [t],
dict: lambda t: list(set(t.values()))}
try:
return cases[type(x)](x)
except KeyError:
return None
如果首选isinstance
,您将如何编写这个value_list()
函数?