簡體   English   中英

python 字符串列表(特殊列表)

[英]python string to list (special list)

我正在嘗試將此字符串放入列表中,請問我該怎么做?

我的字符串:

x = "[(['xyz1'], 'COM95'), (['xyz2'], 'COM96'), (['xyz3'], 'COM97'), (['xyz4'], 'COM98'), (['xyz5'], 'COM99'), (['xyz6'], 'COM100')]"

我想將其轉換為列表,以便:

print(list[0])

Output: (['xyz1'], 'COM95')

如果您有此字符串而不是列表,則假定它來自您無法控制的某個地方(否則您只需制作一個正確的列表)。 如果字符串來自程序之外的來源,則eval()是危險的。 它會很樂意運行任何傳遞給它的代碼。 在這種情況下,您可以使用更安全的ast.liter_eval() (但請確保您了解文檔上的警告):

import ast

x = "[(['xyz1'], 'COM95'), (['xyz2'], 'COM96'), (['xyz3'], 'COM97'), (['xyz4'], 'COM98'), (['xyz5'], 'COM99'), (['xyz6'], 'COM100')]"

l = ast.literal_eval(x)

這給出了一個l

[(['xyz1'], 'COM95'),
 (['xyz2'], 'COM96'),
 (['xyz3'], 'COM97'),
 (['xyz4'], 'COM98'),
 (['xyz5'], 'COM99'),
 (['xyz6'], 'COM100')]

如果該結構統一是具有單元素字符串列表和單個字符串的元組列表,您可以使用單引號作為分隔符手動解析它。 這將為拆分的每個其他組件提供一個字符串值(您可以使用跨步下標訪問)。 然后,您可以通過兩個值的配對構建實際的元組:

tuples = [([a],s) for a,s in zip(*[iter(x.split("'")[1::2])]*2)]
print(tuples[0])
(['xyz1'], 'COM95')

請注意,這不包括單個字符串包含需要 escaping 的單引號的情況

它已經是一個列表。 print(list[0])會給你一個錯誤,因為list是一個 python 內置 function

你應該做print(x[0])得到你想要的

你的意思是像字符串一樣將列表轉換為列表? 也許你可以使用eval()例如

a="[1,2,3,4]"
a=eval(a)

然后 a 變成List

暫無
暫無

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

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