简介
在 Python 中,有时我们需要将一个值转换为列表。然而,如果该值已经是一个列表,我们不希望创建一个嵌套列表。在这个挑战中,你将创建一个函数,它接受一个值并将其作为列表返回,除非它已经是一个列表或其他可迭代对象。
在 Python 中,有时我们需要将一个值转换为列表。然而,如果该值已经是一个列表,我们不希望创建一个嵌套列表。在这个挑战中,你将创建一个函数,它接受一个值并将其作为列表返回,除非它已经是一个列表或其他可迭代对象。
编写一个函数 cast_list(val),它接受一个值作为参数,并将其作为列表返回。如果该值已经是一个列表,则按原样返回。如果该值不是列表但可迭代,则将其作为列表返回。如果该值不可迭代,则将其作为单元素列表返回。
def cast_list(val):
return list(val) if isinstance(val, (tuple, list, set, dict)) else [val]
cast_list('foo') ## ['foo']
cast_list([1]) ## [1]
cast_list(('foo', 'bar')) ## ['foo', 'bar']
在这个挑战中,你学习了如何创建一个函数,该函数在值不是列表或其他可迭代对象时将其转换为列表。你使用 isinstance() 来检查值是否可迭代,并相应地使用 list() 返回它或将其封装在列表中。