python - 将字符串转换为带有变量的列表
问题描述
我正在尝试将字符串转换为列表。
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
.- 不列出我在看什么
关于如何解决这个问题的任何想法?
解决方案
首先提取字段:
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']
推荐阅读
- javascript - flatpickr没有加载rails 6 + webpacker
- sql - Oracle:根据其他列中的值选择列的值
- java - 当我尝试使用 Java MimeMessage 插入一个内联图像时出现两个内联图像
- python-3.x - 如何在 Pandas 中对列进行插值和上采样
- python-3.x - Python:在极坐标网格上组织的数据的二维插值
- python - 如何自动使 python tkinter 自动进入?
- json - 使用 JSON_VALUE + JSON_QUERY 创建新的 JSON
- matplotlib - 在 y 轴上添加科学记数法会改变 matplotlib 条形图中条形的高度
- jquery - 修复了 jQuery 数据表 ui 崩溃的 col
- apache-kafka - 在 Confluent Cloud 免费试用版中使用具有公共 id 列的 Data Gen 工具生成 2 个流