我正在尝试将字符串转换为列表。
stringvalue = '[54.0, country, state]'
我遇到了很多答案,但是所有的字符串都带有这样的引号
[54.0, 'country', 'state']
所以我的想法是我想要一个这样的列表
[54.0, country, state]
基本上,国家和州是变量,可以在程序中解决。
环顾四周后,我遇到了一个答案,该答案使用此方法删除了字符串周围的引号(')
class MyStr(str):
""" Special string subclass to override the default representation method
which puts single quotes around the result.
"""
def __repr__(self):
return super(MyStr, self).__repr__().strip("'")
MyStr(stringvalue)
这导致输出看起来像列表(不带引号)
[54.0, country, state]
但是类型是__main__.MyStr
。-不列出我要查找的内容
关于如何处理此问题的任何想法?
答案 0 :(得分:0)
首先提取字段:
import re
fields = re.findall(r"(?:([^,\s]+)\s*,?\s*)+?", stringvalue[1:-1])
#['54.0', 'country', 'state']
获取对局部变量字典的引用:
country = 'USA'
state = 'MA'
variables = vars()
查找字典中的字段。如果它们在那里,则获取其值。如果不是,请将其视为数字:
[variables[x] if x in variables else float(x) for x in fields]
#[54.0, 'USA', 'MA']
答案 1 :(得分:-7)
尝试这个。
mystr = 'random'
mylist = []
for char in mystr:
mylist += char
print(mylist)