簡體   English   中英

將列表的字符串表示形式轉換為列表

[英]Convert string representation of list into list

list_string = "[1,3,4,6]"

我嘗試了list_string[1:-1]但它給出了1,3,4,6 我也嘗試過list_string.split(',')但是括號將再次附加到第一個和最后一個元素,即'[1' , '3' , '4' , '6]'

我可以遍歷所有項目,並從第一個元素和最后一個元素中刪除括號。 但是,最佳和簡單的方法是什么?

假設您的字符串是列表和字典的簡單列表/字典/組合,則可以使用下面提到的兩個軟件包之一,按優先順序列出。

json

>>> import json
>>> json.loads('[1, 2, 3]')
[1, 2, 3]

如果您要解析原始json字符串,則絕對是首選方法。


ast.literal_eval

>>> import ast
>>> ast.literal_eval('[1, 2, 3]')
[1, 2, 3]

ast.literal_eval將安全地評估表達式節點或包含Python文字或容器顯示的字符串。 提供的字符串或節點只能由以下Python文字結構組成:字符串,字節,數字,元組,列表,字典,集合,布爾值,無,字節和集合。

而且json.loads明顯比ast.literal_eval 僅當您不能首先使用json模塊json使用此功能。


yaml

在某些情況下,您還可以使用pyYAML庫(首先需要使用PyPi進行安裝)。

>>> import yaml
>>> yaml.safe_load('[1, 2, 3]')
[1, 3, 4, 6] 

暫無
暫無

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

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