簡體   English   中英

根據列表值將字符串拆分為Python中的列表

[英]Splitting string based on list values into a list in Python

目前,我正在嘗試根據另一個列表中的匹配值從字符串創建新列表。 例如,我的值列表是:

['IX', 'C', 'D', 'XL', 'I', 'XC', 'M', 'L', 'CD', 'X', 'IV', 'CM']

都是羅馬數字。 我將如何使用羅馬數字:

MMIX

並將其拆分為:

['M', 'M', 'IX']

根據上一個列表。

任何幫助將是巨大的!

我不確定這種方法是否通常可以解析羅馬數字。 例如,此代碼無法正確解析VIII但這是因為V不在令牌列表中。 但是這是一個簡單的遞歸函數,該函數在輸入字符串的開頭查找一個標記並組合一個列表:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM