Python 将SrtingSet转换为字符串
我想使用python3将stringset转换为string Input=“{'abc','def'}” 我已经尝试了所有可能的方法,比如求值,文字求值,转换成集合等等,但是我没有找到解决办法Python 将SrtingSet转换为字符串,python,string,set,Python,String,Set,我想使用python3将stringset转换为string Input=“{'abc','def'}” 我已经尝试了所有可能的方法,比如求值,文字求值,转换成集合等等,但是我没有找到解决办法 解答和解释将不胜感激。谢谢 在eval调用中进行转换: inp = "{'abc','def'}" lst = eval("list(" + inp + ")") # eval("list({'abc','def'})")
解答和解释将不胜感激。谢谢 在
eval
调用中进行转换:
inp = "{'abc','def'}"
lst = eval("list(" + inp + ")") # eval("list({'abc','def'})")
print(lst)
输出:
['def', 'abc']
['abc', 'def']
顺序已更改,因为原始字符串是无序集。要维持订单,您需要交换括号:
inp = "{'abc','def'}"
lst = eval("[" + inp[1:-1] +"]") # eval("['abc','def']")
print(lst)
输出:
['def', 'abc']
['abc', 'def']
如果要使用ast.literal\u eval
而不是eval
,请尝试以下代码:
# read as set
inp = "{'abc','def'}"
lst = list(ast.literal_eval(inp)) # ast.literal_eval("{'abc','def'}")
print(lst) # ['abc', 'def']
请注意,eval以错误的顺序返回第一个结果,而
literal\u eval
以与字符串相同的顺序返回它。您要查找什么结果<代码>('abc','def')?嘿,我在找字符串列表。谢谢非常感谢你。感谢你的回答有没有一种方法,我可以在这个例子中使用as.literal\u eval,因为pep8鼓励使用ast.literal\u eval instal of eval,因为这不是安全的方法。太棒了,迈克。