簡體   English   中英

從python列表中刪除其他引號

[英]Remove additional quotes from python list

我有一個具有以下模式的列表,並且我想擺脫每個子列表的開頭和結尾處出現的" 。我嘗試了替換,剝離,但它們不是列表的屬性,因此給出了AttributeError

lst = [["'123', 'Name1', 'Status1'"], ["'234', 'Name2', 'Status2'"]]

我正在尋找以下作為我的最終結果:

lst = [['123', 'Name1', 'Status1'], ['234', 'Name2', 'Status2']]

請建議如何從每個子列表中刪除雙引號。

您可以使用shlex.split刪除逗號后replace

import shlex

lst = [["'123', 'Name1', 'Status1'"], ["'234', 'Name2', 'Status2'"]]
r = [shlex.split(x[0].replace(',', '')) for x in lst]
# [['123', 'Name1', 'Status1'], ['234', 'Name2', 'Status2']]

這應該可以解決問題:

result = [[element.strip("'") for element in sub_list[0].split(', ')] for sub_list in lst]

我假設字符串的格式是“用單引號引起來的字符串,用逗號和空格分隔。” 請注意,我的代碼可能不會使用[["'A comma here, changes the parsing', 'no comma here'"], ...]類的輸入來完成預期的操作。 (在我的代碼中,這看起來像一個列表中的三個元素,而我想您想將其考慮為兩個。)

編輯

與較長的列表理解相比,這也許更容易理解:

result = []
for sub_list in lst:
    s = sub_list[0]
    result.append([element.strip("'") for element in s.split(', ')])

暫無
暫無

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

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