簡體   English   中英

Python,將數組字符串轉換為數組

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

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