簡體   English   中英

python將整數嵌套列表的字符串表示形式轉換為整數嵌套列表

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

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