如何转换为 Python 列表理解

How to convert to Python list comprehension

ls = ['abc', 56, 49, 63, 66, 80]
for i in ls:
    if(isinstance(i, int) or isinstance(i, float)):
        for i in range(len(ls)):
            ls[i] = str(ls[i])

我可以知道如何创建上述代码的列表理解吗?

我正在尝试以下但不起作用

if (s for s in ls isinstance(s, int) or isinstance(s, float)):
    for i in range(len(ls)):
        ls[i] = str(ls[i])

对于您有字符串或整数或浮点数的示例,您可以使用简单的列表理解:

ls = ['abc', 56, 49, 63, 66, 80]
print([str(l) for l in ls])

或者,您可以使用 map:

print(list(map(str, ls)))

如果您只想将浮点数和整数转换为字符串(并忽略其他任何东西,如布尔值、小数对象等):

print([str(l) if isinstance(l, int) or isinstance(l, float) else l for l in ls])