Python 如何从列表中删除引号以将其转换为元组
我有一份清单,其中包括:Python 如何从列表中删除引号以将其转换为元组,python,list,tuples,Python,List,Tuples,我有一份清单,其中包括: ["('apple','banana')","('orange','cherry')"] [('apple','banana'),('orange','cherry')] 我想从列表中删除引号并将其转换为元组 我试着用 tuple(list1) 但我得到了: ("('apple','banana')", "('orange','cherry')") 或 我希望输出为: ('apple','banana'),('orange','cherry') 此外,该输出
["('apple','banana')","('orange','cherry')"]
[('apple','banana'),('orange','cherry')]
我想从列表中删除引号并将其转换为元组
我试着用
tuple(list1)
但我得到了:
("('apple','banana')", "('orange','cherry')")
或
我希望输出为:
('apple','banana'),('orange','cherry')
此外,该输出还可以帮助:
为此,您应该使用
ast.literal\u eval
,这比eval
更安全
>>> import ast
>>> x = ["('apple','banana')","('orange','cherry')"]
>>> [ast.literal_eval(i) for i in x]
[('apple', 'banana'), ('orange', 'cherry')]
你最初是如何制作出这样一份清单的
import ast
然后[ast.literal\u eval(t)for t in inputlist]
将每个元素转换为元组,但您可能首先要避免陷入这个困境。我有一个格式为[a、b、c、d,…]的城市列表。我想建立一个可以从任何地方访问的城市网络,比如从b到a,从c到b,从c到a等等。为了建立这样一个网络,我需要一个元组。因此,我需要它从list转换为tupleSlowly,不再使用eval()
。该功能的实际用例很少。这不是其中之一。ast.literal\u eval可以替换为..,但反之亦然。这是因为eval()
是一把瞄准脚的枪,而ast.literal\u eval()
是一种只解析文字的非常精确的工具。
>>> import ast
>>> x = ["('apple','banana')","('orange','cherry')"]
>>> [ast.literal_eval(i) for i in x]
[('apple', 'banana'), ('orange', 'cherry')]