Skip to main content
 首页 » 编程设计

python之遍历列表并加入相同类型的项目

2025年05月04日10傻小

我有一堆字符串通过 list(string) 插入列表:

stringy = "I've 24got a 697love-a-ly2 bunch of 000coconuts!" 
listy = list(stringy) 

listy 看起来像:

['I', "'", 'v', 'e', ' ', '2', '4', 'g', 'o', 't', ' ', 'a', ' ', '6', '9'... 

我正在寻找一种更简洁的方法来遍历列表,并且在不丢弃任何单个字符条目的情况下,将所有整数连接在一起以生成:

['I', "'", 'v', 'e', ' ', '24', 'g', 'o', 't', ' ', 'a', ' ', '697','l','o'... 

整数在字符串中的位置不可预测,数字中的位数也不可预测(我可能会遇到 1 或 1000000000。)

首先要找到整数值,请考虑以下内容:

for i in listy: 
    if i.isdigit(): 
        x = listy.index(i) 
        z = listy[x+1] 
        if z.isdigit(): 

...但这只会是一个低效的血腥困惑。

实际上,将数字放在一起会非常容易,但我很难想出一种巧妙的方法来检查每个数字。有什么建议吗?

请您参考如下方法:

您可以使用 re 非常简单地完成此操作,

>>> import re 
>>> a = "I've 24got a 697love-a-ly2 bunch of 000coconuts!" 
>>> re.findall(r'\d+|.', a) 
['I', "'", 'v', 'e', ' ', '24', 'g', 'o', 't', ' ', 'a', ' ', '697', 'l', 'o', 'v', 'e', '-', 'a', '-', 'l', 'y', '2', ' ', 'b', 'u', 'n', 'c', 'h', ' ', 'o', 'f', ' ', '000', 'c', 'o', 'c', 'o', 'n', 'u', 't', 's', '!'] 

如果你多次执行这个操作,你应该考虑像这样编译它,

>>> splitter = re.compile(r'\d+|.')