![](/img/trans.png)
[英]How to convert nested list strings to integers then sort them in python 3?
[英]python convert string representation of nested list of integers to nested list of integers
我正在嘗試讀取嵌套列表的字符串表示形式,並將其轉換為python中的嵌套列表。 我嘗試了以下方法:
l=input("enter nested list")
result=eval(l)
輸入[[1],[2]]
,結果是我剛剛輸入的字符串,因此,如果我print(l[0])
則結果為'['
。 任何援助將不勝感激。
eval
不安全,因為它不會對輸入內容進行任何后台檢查。 使用literal_eval
從內置模塊ast
代替。 你可以寫:
from ast import literal_eval as leval
l = '[[1],[2]]'
result = leval(l)
print(result) # -> [[1], [2]]
print(result[0]) # -> [1]
與您的代碼的問題,如@ BRO-語法指出的是,你認為eval
原地 ,當你做工作eval(l)
l
被修改。 但這不是它的工作方式 。 eval
返回其結果並賦予它result
在你的代碼。 嘗試改為執行print(result[0])
,您會看到。
您不能使用eval
但可以使用exec
。 無需導入任何模塊。
l = input("Enter nested list: ")
exec('result = '+l)
print(result)
print(result[0])
測試:
Enter nested list: [[1],[2]]
[[1], [2]]
[1]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.