u012286770
SUN小圣
采纳率0%
2019-12-27 11:23 阅读 1.5k

Python关于将字符串进行分割并返回成一个列表???

原字符串是:str='a,b,c,"d,e,f",g,h'
需要返回的列表是:['a','b','c','d,e,f','g','h']
我目前用的是str.spilt(','),得到的列表是['a',b','c','d','e','f','g','h'],但这不是我想要的,我想要返回列表['a','b','c','d,e,f','g','h'],哪位大神可以帮我一下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • wrenthomas wrenthomas 2019-12-27 11:51
    import csv
    str='a,b,c,"d,e,f",g,h'
    newStr = ['{}'.format(x) for x in list(csv.reader([str], delimiter=','))[0]]
    print (newStr)
    
    点赞 1 评论 复制链接分享
  • lujinglei lujinglei 2019-12-27 11:38

    直接strip,然后再加上'不就行了

    点赞 评论 复制链接分享
  • m0_37886429 幸福丶如此 2019-12-27 11:42

    首先要把字符串里面的双引号去掉,再用split方法

    import re
    test= 'a,b,c,"d,e,f",g,h'
    test = re.sub('"','',test)
    print(test.split(','))
    

    图片说明

    点赞 评论 复制链接分享
  • weixin_38659265 会飞的咕咕鱼 2019-12-27 20:41

    图片说明

    str = 'a,b,c,"d,e,f",g,h'
    str2 = 'a,b,c,"d,e,f",g,h,"a,a,d,d",s,f,"c,c",k'
    
    
    def myStrToList(str_arg):
        re_list = []
        count = 0
        tmp_str = ''
        str_arg = str_arg.replace(',', '')
        for line in str_arg:
            if line == '"':
                count += 1
                if count == 2:
                    count = 0
                    if len(tmp_str) > 0:
                        re_list.append(tmp_str[0:-1])
                        tmp_str = ''
                    else:
                        re_list.append(line)
            elif count == 1:
                tmp_str += line + ','
            elif count == 0:
                re_list.append(line)
        return re_list
    
    
    print(myStrToList(str))
    print(myStrToList(str2))
    
    点赞 评论 复制链接分享

相关推荐