别人用了1行代码,我用了8行。。。
Topic source很明显你和别人的不一样啊,别人的L2里面都是不包括原来L1里面的整数和None,而你把L1里面的整数和None都考虑进去了。 ps:你的代码可以优化一下,判断字符串用isinstance(s,str)就可以了,没必要用是否可以迭代来判断; pps:你对比一下L2和L3的输出就能看出来了:
L1 = ['Apple',1,None,'Hello']
L2 = [s.lower() for s in L1 if isinstance(s,str)]
print(L2)
L3 = []
for s in L1:
if isinstance(s,str):
s = s.lower()
L3.append(s)
print(L3)
- 1
Gingbery
from collections import Iterable L=['Hello', 'World', 18, 'Apple', None] M=list() for s in L: if isinstance(s,Iterable): s=s.lower() M.append(s) print(M)