首页 > 解决方案 > 使用您选择的给定分隔符将字符和数字段与给定字符串分开

问题描述

我正在尝试编写一个函数,该函数将两个字符串作为输入并返回一个包含提取的字符和数字段的元组。喜欢:

string_to_parse = 'Copenhagen hosted Cop -09 summit at Bella Centre in 2009 , which was attended by delegates from more than 100 countries.'
separator = '_'
tuple_to_be_returned = ('CopenhagenhostedCop_summitatBellaCentrein_whichwasattendedbydelegatesfrommorethan_countries','09 _2009_100')

任何人都有任何想法,我该如何解决这个问题?任何想法都会很棒!提前致谢!

标签: pythonpython-3.x

解决方案


这是一个有点恶心的意大利面条代码,但它可以工作,重构这个函数并使其更整洁将是一个很好的练习。祝你好运!!

def separate(string, separator):
    words = []
    nums = []
    for word in string.split(" "):
        if word.isnumeric():
            nums.append(word)
            string = string.replace(word, separator, 1)
        else:
            words.append(word)

    return "".join(map(lambda s: s if s.isalpha() or s == separator else "", "".join(string.split(" ")))), separator.join(nums)

推荐阅读