首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中将基于列表值的字符串拆分为列表

在Python中将基于列表值的字符串拆分为列表
EN

Stack Overflow用户
提问于 2013-04-10 12:05:05
回答 1查看 115关注 0票数 0

目前,我正在尝试从一个字符串创建一个新的列表,基于来自另一个列表的匹配值。例如,我的值列表是:

代码语言:javascript
复制
['IX', 'C', 'D', 'XL', 'I', 'XC', 'M', 'L', 'CD', 'X', 'IV', 'CM']

都是罗马数字。我该如何处理一个罗马数字:

代码语言:javascript
复制
MMIX

并将其拆分为:

代码语言:javascript
复制
['M', 'M', 'IX']

基于前面的列表。

任何帮助都是最好的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 12:18:32

我不确定这种方法是否能在一般情况下解析罗马数字。例如,这段代码无法正确解析VIII,但这是因为V不在标记列表中。但下面是一个简单的递归函数,它查找输入字符串开头的一个标记,并组装一个列表:

代码语言:javascript
复制
tokens = ['IX', 'C', 'D', 'XL', 'I', 'XC', 'M', 'L', 'CD', 'X', 'IV', 'CM']

def rn_split(numeral, results_so_far=[]):
    if len(numeral)==0:
        return results_so_far # Break the recursion
    for token in tokens:
        if numeral.startswith(token):
            results_so_far.append(token)
            recurse_numeral = numeral[ (len(token)): ]
            return rn_split(recurse_numeral, results_so_far)
    # Remainder of numeral didn't match.  Bail out
    results_so_far.append(numeral)
    return results_so_far
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15916728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档