如何告诉我的程序根据字符串中的givin执行某些操作?
例如,如果列表中有字符串:
li = ["Hello", "Day"]
你做了一个特定的行动。
如果列表中有整数:
li = [1,2,3,4,3232]
你要采取其他行动
如果有布尔值
li=[False]
做一些其他行动。
我想检查列表的对象类型。
答案 0 :(得分:1)
您可以使用
if isinstance(li[0], str):
...
elif isinstance(li[0], int):
...
elif isinstance(li[0], bool):
...
或者您可以创建单独的函数和调度字典:
def function_for_str(li):
... process a list of strings ...
def function_for_int(li):
... process a list of ints ...
def function_for_bool(li):
... process a list of booleans ...
funcs = {str: function_for_str,
int: function_for_int,
bool: function_for_bool}
然后使用type
:
funcs[type(li[0])](li) # Will call the specific function
但请注意,在Python中,列表中的每个元素都可以有不同的类型,您也可以面对一个空列表(根本没有元素的列表)。
答案 1 :(得分:0)
您可以尝试实现以下代码。
for item in my_list:
if isinstance(item, int):
do_int_related_stuff(item)
elif isinstance(item, str):
do_str_related_stuff(item)
elif isinstance(item, bool):
do_bool_related_stuff(item)
else:
do_generic_stuff(item)
如果您想检查列表中的所有项目是否属于某种特定类型,您可以执行以下操作。
if all([isinstance(item, str) for item in my_list]):
do_str_related_stuff(my_list)
但请注意,如果您正在处理空列表,则后者是真的。
>>> all(isinstance(item, bool) for item in [])
True