如何建立一个基于字符串的列表,忽略小写?

2024-04-25 01:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

s = 'ABBCbDAbCdC'
a = 100

用这些,我想列一个清单:

list = ['100', '101', '102', '103', '105', '106', '108', '110']

我的主要目标是通过忽略小写字母来创建一个从整数(a =100)开始的数字列表,该整数对应于字符串中的字母。你知道吗

python有什么解决方案吗?我将把这个解决方案应用于一个由许多字段和行组成的大文件。你知道吗


Tags: 文件字符串目标列表字母数字整数解决方案
2条回答

马蒂恩的回答确实是最好的。我试过使用^{}^{}函数1。你知道吗

>>> filter(None,map(lambda x:str(x[0]) if x[1].isupper() else None,enumerate(s,a)))
['100', '101', '102', '103', '105', '106', '108', '110']

请注意,与列表理解相比,这是非常缓慢的。下面提到的另一个lambda表达式Pochmannlambda x: x[1].isupper() and str(x[0])。两个lambda之间的差异可以忽略不计。你知道吗

1任何列表组件都可以使用这些功能进行替换

您可以使用^{} function来创建一个计数器,第二个参数是起始值,如果需要,可以将其设置为a。你知道吗

要测试字符串是否为大写,请使用^{} method。你知道吗

在列表中与过滤器结合在一起,可提供:

[str(number) for number, char in enumerate(s, a) if char.isupper()]

这将对s中从a开始的所有字符进行编号,但只包括输出列表中字符为大写的那些数字;这些数字将转换为字符串:

>>> s = 'ABBCbDAbCdC'
>>> a = 100
>>> [str(number) for number, char in enumerate(s, a) if char.isupper()]
['100', '101', '102', '103', '105', '106', '108', '110']

相关问题 更多 >