[英]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.