[英]Removing quotation marks in python
我使用python將txt數據作為列表導入。 結果,我不想要的列表中的項目上有雙引號。 我想刪除它們,但我目前遇到了一些困難。 如果有人能幫助我解決這個問題,我會很高興。
python中的列表具有這種性質:
lst = ["'BEN','JIM'", "'GIN','ANN'"]
我想刪除雙引號,這樣我就可以得到這個列表:
lst = ['BEN','JIM', 'GIN','ANN']
我嘗試了這行代碼,但無濟於事:
lst = ["'BEN','JIM'", "'GIN','ANN'"]
lst = [x.strip("'") for x in lst]
lst
結果不是我所期望的:
["BEN','JIM", "GIN','ANN"]
再次感謝您的幫助。
您已將項目的顯示表示混淆為等同於其值。 看看你有什么:兩個元素的列表:
["'BEN','JIM'",
"'GIN','ANN'"]
您想要獲取包含四個元素的列表:
['BEN',
'JIM',
'GIN',
'ANN']
你不能通過簡單的字符操作來做到這一點:你嘗試的操作不會改變元素的數量。
相反,您必須處理您擁有的元素,將 2-for-1 拆分。 我將保持 Python 技術的低...
new_lst = []
for two_name in lst:
name_pair = two_name.split(',')
new_lst.extend(name_pair)
輸出:
["'BEN'", "'JIM'", "'GIN'", "'ANN'"]
現在您可以使用之前的技術刪除單引號,留下您想要的四個 3 個字母的名稱。
這能解決你的問題嗎?
使用replace()
字符串函數去掉單引號,然后用逗號分割。
lst = ["'BEN','JIM'", "'GIN','ANN'"]
newlst = []
for pair in lst:
for name in pair.replace("'", "").split(","):
newlst.append(name)
數據看起來類似於引用單個單元格的 CSV 文件。 如果它看起來像一只鴨子……請使用閱讀器為您剝離它們。 這是一個嵌套列表理解,首先從列表中構建行,然后將它們展平為單個列表。
>>> import csv
>>> lst = ["'BEN','JIM'", "'GIN','ANN'"]
>>> [cell for row in csv.reader(lst, quotechar="'") for cell in row]
['BEN', 'JIM', 'GIN', 'ANN']
lst = ["'BEN','JIM'", "'GIN','ANN'"]
lst = "".join(lst)
print(lst)
輸出:
'BEN','JIM''GIN','ANN'
你可以用兩行的列表理解來做到這一點:
輸入:
lst = ["'BEN','JIM'", "'GIN','ANN'"]
lst1 = [x.replace("'", "").split(',') for x in lst]
lst2 = [z for y in lst1 for z in y]
或在一行上
lst2 = [z for y in [x.replace("'", "").split(',') for x in lst] for z in y]
輸出:
['BEN', 'JIM', 'GIN', 'ANN']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.