如何转换为Python列表理解

dne*_*nez 2 python list for-comprehension python-3.x

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])
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试以下但不工作

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

Kar*_*rin 7

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

ls = ['abc', 56, 49, 63, 66, 80]
print([str(l) for l in ls])
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用map:

print(list(map(str, ls)))
Run Code Online (Sandbox Code Playgroud)

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

print([str(l) if isinstance(l, int) or isinstance(l, float) else l for l in ls])
Run Code Online (Sandbox Code Playgroud)