簡體   English   中英

Python - 字符串轉換為列表

[英]Python - String conversion to list

我有一個字符串字段: "[Paris, Marseille, Pays-Bas]" 我想將此字符串轉換為字符串列表。

現在我有以下功能:

def stringToList(string):
    string = string[1:len(string)-1]
    try:
        if len(string) != 0: 
            tempList = string.split(", ")
            newList = list(map(lambda x: str(x), tempList))
        else:
            newList = []
    except:
        newList = [-9999]

    return(newList)

我想知道是否有更簡單或更短的方法具有相同的結果。 如果我的輸入數據是int類型,我可以使用ast.literal_eval() 但就我而言,它不起作用。

謝謝

值得了解:

import re

string = "[Paris, Marseille, Pays-Bas]"
founds = re.findall('[\-A-Za-z]+', string)

它將找到至少包含-AZaz

一個優點是它可以處理不太整潔的字符串,例如:

string2 = " [  Paris, Marseille  , Pays-Bas  ] "
string3 = "   [ Paris  ,  Marseille  ,   Pays-Bas  ] "

這將其拆分為一個字符串列表:

'[Paris, Marseille, Pays-Bas]'.strip('[]').split(', ')                                                                                                                               
# ['Paris', 'Marseille', 'Pays-Bas']

只需使用切片和str.split

>>> s = '[Paris, Marseille, Pays-Bas]'
>>> s[1:-1].split(', ')
['Paris', 'Marseille', 'Pays-Bas']
>>> 

str.stripstr.split

>>> s = '[Paris, Marseille, Pays-Bas]'
>>> s.strip('[]').split(', ')
['Paris', 'Marseille', 'Pays-Bas']
>>> 

嘗試這個 :

s = "[Paris, Marseille, Pays-Bas]"

s = [i.replace('[','').replace(']','').replace(' ','') for i in 
s.split(',')]
print(s)

輸出:

['Paris', 'Marseille', 'Pays-Bas']

暫無
暫無

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

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