Python单行使字符串小写并保留数字

时间:2015-11-19 11:06:53

标签: python

有没有办法写一个单行程序,将字符串转换为小写并单独留下数字?到目前为止,我有这个:

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]

2 个答案:

答案 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]