请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

6回答

慕粉916768 2019-08-16 04:38:19

还是使用正则表达式比较好,适用的情况比较多。如果一个列表中包含有数字等情况:

import  re

list_u = ['a','B','c','F','e',1,3,10,'4']

pattern = '[A-Z]'        #保留大写
r=filter(lambda x: re.match(pattern,str(x)), list_u)
print(list(r))

如果要保留小写,修改匹配条件即可:pattern = '[a-z]'。可以根据不同条件来修改,比较灵活。

1 回复 有任何疑惑可以回复我~
慕数据7346926 2019-01-15 13:06:39

#过滤大小写
strList = ['a','B','c','D','E']
re = filter(lambda x: x.islower(),strList)
print(list(re))

1 回复 有任何疑惑可以回复我~
Seven_柒柒 2018-10-12 21:52:56

import re

list_letter = ['a','A','d','s','D','c','F']

r = filter(lambda x: re.findall('[a-z]', x), list_letter)


其实,没必要使用三元表达式。filter会根据函数的返回值,自动判断是否保留。

例如 : re.findall('[a-z]', x)

第一个元素:‘a’-->rerurn 'a'  --->不为空,即True

第二个元素:‘A’-->rerurn ' '  ---->为空,即False


1 回复 有任何疑惑可以回复我~
  • 但是正则表达式筛选的必须是字符串啊,那还得把list_letter先转换成字符串,是吗
    回复 有任何疑惑可以回复我~ 2019-07-21 10:50:03
微分 2018-09-16 23:01:12

1. 筛选小写字母

list_x = ['A', 'a', 'B', 'c', 'f', 'g', 'H']

r = filter(lambda x: True if x >= 'a' else False, list_x)

print(list(r))

2. 筛选大写字母

list_x = ['A', 'a', 'B', 'c', 'f', 'g', 'H']

r = filter(lambda x: True if x < 'a' else False, list_x)

print(list(r))


1 回复 有任何疑惑可以回复我~
慕粉3414773 2020-07-16 16:57:06

b_list = ['A','b','C','d','E','f']

z = list(filter(lambda x:  x.isupper(),b_list))

print(z)

python 提供了一系列判断方法,isupper islower 之类的

0 回复 有任何疑惑可以回复我~
慕的地6863477 2019-03-28 21:09:27

x_list=['a','A','b','c','D','E']


# 筛选大小写,这个是筛选小写的,筛选大写,下面改成not in就好了

a="abcdefghigklmnopq"

r=filter(lambda x:True if x  in a else False,x_list)

print(list(r))


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信