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