L = ['Hello', 'World', 18, 'Apple', None]
print(
[s.lower() for s in L if isinstance(s, str)]
)
以上代码是把一个list中所有的字符串变成小写
输出:['hello', 'world', 'apple']
我期待的结果是['hello', 'world', 18, 'apple', None]
也就是保留里面所有内容,请问要怎么做呢
L = ['Hello', 'World', 18, 'Apple', None]
print(
[s.lower() for s in L if isinstance(s, str)]
)
以上代码是把一个list中所有的字符串变成小写
输出:['hello', 'world', 'apple']
我期待的结果是['hello', 'world', 18, 'apple', None]
也就是保留里面所有内容,请问要怎么做呢
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
因为你加了
if isinstance(s, str)
就会把所有非字符串过滤掉了,你完全可以把条件放在前面:多加一句,虽然 python 的 list 支持任何类型,但我个人认为,list 中的所有元素最好是同一类型