为了账号安全,请及时绑定邮箱和手机立即绑定

Python 函数中输入字符串的灵活拆分

Python 函数中输入字符串的灵活拆分

哆啦的时光机 2021-07-02 14:20:33
在 Python 中,转换此结构的最优雅方式是什么:['group1, group2, group3']进入这个结构:['group1', 'group2', 'group3']并可能回来。需要的是一个函数,它可以采用逗号分隔值的字符串列表(第一种情况)或相同值的字符串列表(第二种情况),并将它们作为一个和相同的:字符串列表处理。在伪代码中:x = ['group1, group2, group3']y = ['group1', 'group2', 'group3']f(x) <==> f(y)    <- equivalent behavior此外,如果split()按照建议使用:有没有一种方法,使分隔空间不敏感或有条件或正则表达式:我想获得的['group1', 'group2', 'group3']结果在任一['group1, group2, group3']或者['group1,group2,group3']甚至该['group1, group2,group3']为输入(或它们的组合)?再澄清一点:>>> single_string = False>>> a = ['group1', 'group2', 'group3','group4']>>> [t.strip() for t in [a][0].split(',')] if single_string else a['group1', 'group2', 'group3', 'group4']>>> single_string = True>>> b = ['group1,group2, group3,  group4']>>> [t.strip() for t in [b][0].split(',')] if single_string else bTraceback (most recent call last):  File "<stdin>", line 1, in <module>AttributeError: 'list' object has no attribute 'split'>>>基本上,我正在寻找最优雅的 Python 条件表达式,它会在以下情况a和b以上情况下产生相同的输出:['group1', 'group2', 'group3', 'group4'].
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你几乎就在你的编辑中:


def f(lst):

    return [t.strip() for t in lst[0].split(',')] if len(lst) == 1 else lst


>>> a = ['group1', 'group2', 'group3','group4']

>>> b = ['group1,group2, group3,  group4']


>>> f(a)

['group1', 'group2', 'group3', 'group4']

>>> f(b)

['group1', 'group2', 'group3', 'group4']


查看完整回答
反对 回复 2021-07-13
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以使用splitandjoin从一种表示到另一种表示:


print('group1, group2, group3'.split(', '))

# ['group1', 'group2', 'group3']

print(', '.join(['group1', 'group2', 'group3']))

# group1, group2, group3

在一个函数中,你可以这样做:


def f(items, index, separator=', '):

    if isinstance(items, str):

        items = items.split(separator)

    return items[index]



print(f('group1, group2, group3', 1))        # group2

print(f(['group1', 'group2', 'group3'], 1))  # group2


查看完整回答
反对 回复 2021-07-13
?
UYOU

TA贡献1878条经验 获得超4个赞

如何使用split():


代码:

['group1, group2, group3'][0].split(', ')

测试代码:

x = ['group1, group2, group3']    

print(x[0].split(', '))

结果:

['group1', 'group2', 'group3']

返回:

返回使用 str.join()


y = x[0].split(', ')

print(y)


xx = [', '.join(y)]

print(xx)

结果:

['group1', 'group2', 'group3']

['group1, group2, group3']


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号