有没有办法写一个单行程序,将字符串转换为小写并单独留下数字?到目前为止,我有这个:
names = ["a","Abc","EFG",45,65]
newlist = [n.lower() for n in names if isinstance(n, basestring)]
print newlist
>>>['a', 'abc', 'efg']
我想要这个
>>>['a', 'abc', 'efg', 45 ,65]
答案 0 :(得分:2)
使用条件表达式。你过滤掉了非字符串。
条件表达式: x if
条件 else
y 。如果条件为True,则返回 x ,否则返回 y 。
names = [n.lower() if isinstance(n, basestring) else n for n in names]
答案 1 :(得分:1)
您可以避免使用isinstance
[x.lower() if type(x)==str else x for x in names]