【问题标题】:join string by comma and put quotes around each element用逗号连接字符串并在每个元素周围加上引号
【发布时间】:2021-10-10 14:58:03
【问题描述】:

我有以下字符串:

s_tring = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'

我想创建一个列表并用逗号分隔它并在每个元素周围加上引号,如下所示:

some_list = '"abcd", "efgh", "igkl", "mnop", "qrst", "uvwx", "yz"'

我尝试过这样做:

some_list = '","'.join(s_tring)

但它不起作用。

【问题讨论】:

标签: python


【解决方案1】:

在一行中使用 splitjoin 方法和列表解析。

s = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'

print(', '.join([f'"{w}"' for w in s.split(',')]))
# '"abcd", "efgh", "igkl", "mnop", "qrst", "uvwx", "yz"'

【讨论】:

  • 这很容易通过交换格式字符串周围的引号来解决。
【解决方案2】:

您必须先将原始字符串拆分为字符串列表,然后将引号括起来,最后用逗号连接:

s_tring = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'
parts = s_tring.split(',')
parts = [f'"{part}"' for part in parts]
some_list = ', '.join(parts)

另一种方法是用引号连接部分,最后添加缺少的引号:

s_tring = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'
parts = s_tring.split(',')
some_list = '"' + '", "'.join(parts) + '"'
print(some_list)

【讨论】:

    【解决方案3】:

    只需拆分并加入

    string = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'
    string = ', '.join([f'"{x}"' for x in string.split(',')])
    print(string)
    

    输出

    "abcd", "efgh", "igkl", "mnop", "qrst", "uvwx", "yz"
    

    【讨论】:

      【解决方案4】:

      您可以先split,然后map 格式化每个单词,最后使用join,如下所示:

      >>> s_tring = 'abcd,efgh,igkl,mnop,qrst,uvwx,yz'
      >>> ', '.join(map("\"{}\"".format,s_tring.split(',')))
      '"abcd", "efgh", "igkl", "mnop", "qrst", "uvwx", "yz"'
      
      >>> print(', '.join(map("\"{}\"".format,s_tring.split(','))))
      "abcd", "efgh", "igkl", "mnop", "qrst", "uvwx", "yz"
      

      【讨论】:

        【解决方案5】:

        逻辑:首先让我们创建一个新变量,它是一个空字符串,我们可以在其中添加元素,直到我们使用循环获得“,”。如果我们得到一个“,”,那么我们会将其更改为一个空格(“”)并将其添加到变量中,以便在循环完成后,我们可以使用split() 函数删除空格并将其附加到一个空列表中。你的代码是:

        x="abcd,efgh,ijkl,mnop,qrst"
        v=""
        l=[]
        c=0
        for i in x:
            if i==",":
                v+=" "
            else:
                v+=i
        
         for b in v.split():
            l.append(b)
                
        
        print(l)
        

        或者直接使用split(",") 并添加

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-27
          • 1970-01-01
          • 2015-11-04
          相关资源
          最近更新 更多