[英]Python,convert an array string into an array
我有這個字符串
'["el1", "el2", "el3"]'
它是一個字符串,而不是一個數組,所有 3 個元素都可以隨意更改,但元素始終為 3。我想為所有 3 個元素創建一個變量,比如
var1 = "el1"
var2 = "el2"
var3 = "el3"
一個可能的解決方案是將此字符串轉換為數組..但我不知道我該怎么做。 另一種解決方案是拼接字符串,但一如既往我不知道我該怎么做。 有人可以幫忙嗎?
您的字符串似乎采用 JSON 格式。 您可以像這樣從中列出一個列表:
import json
string = '["el1", "el2", "el3"]'
list_from_string = json.loads(string)
print(list_from_string) # outputs ['el1', 'el2', 'el3']
如另一個答案中所述,也可以使用eval
function 來完成。 我建議不要這樣做,因為如果您從用戶那里獲取字符串作為輸入,那么eval
可能會非常危險。
您可能真的不想為數組輸入的每個項目創建一個變量。 如果您從中創建一個列表,則可以對其進行迭代。 例如,您可以使用這樣的for
循環來打印輸入數組中的每個項目:
for i in list_from_string:
print(i)
Output:
el1
el2
el3
使用ast.literal_eval
是正確的方法,而不是使用eval
因為它不安全:
from ast import literal_eval
s = '["el1", "el2", "el3"]'
var1, var2, var3 = literal_eval(s)
>>> var1
el1
>>> var2
el2
>>> var3
el3
試試這個:
import ast
str = '["el1", "el2", "el3"]'
list_of_values = ast.literal_eval(str)
val1 = list_of_values[0]
val2 = list_of_values[1]
val3 = list_of_values[2]
print(val1)
print(val2)
print(val3)
output:
el1
el2
el3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.