You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何拆分字典中的字符串生成指定格式的目标列表

解决方法:拆分window_string并生成指定格式列表

没问题,这事儿在Python里处理起来很灵活,我给你两种实用的思路,你可以根据自己的场景选择:

方法一:基础字符串拆分+自定义格式化

这种方法适合格式比较规整的情况,步骤清晰易懂:

json_data = {"window_string": "X=-10 H=30 Y=20 W=40"}

# 1. 从字典中取出目标字符串
window_str = json_data["window_string"]
# 2. 按空格拆分出单个的键值对(比如"X=-10"、"H=30")
key_value_pairs = window_str.split()
# 3. 遍历处理每个键值对,按需调整格式
formatted_list = []
for pair in key_value_pairs:
    # 用split('=', 1)拆分键和值,避免值中包含等号时出错
    key, value = pair.split('=', 1)
    # 按照你示例中的格式,给X、Y的等号两边加空格,其他保留原格式
    if key in ('X', 'Y'):
        formatted_list.append(f"{key} = {value}")
    else:
        formatted_list.append(pair)

# 如果只需要保留X、Y、W(过滤掉H),可以再加一步过滤
final_window_list = [item for item in formatted_list if item.split('=')[0] in ('X', 'Y', 'W')]
print(final_window_list)
# 输出: ['X = -10', 'Y = 20', 'W=40']

方法二:正则表达式(更适合复杂格式)

如果你的window_string格式可能有变化(比如多个空格分隔、或者有其他特殊字符),用正则表达式会更稳健:

import re

json_data = {"window_string": "X=-10 H=30 Y=20 W=40"}
window_str = json_data["window_string"]

# 匹配所有"大写字母=任意非空格字符"的键值对
matches = re.findall(r'([A-Z])=([^ ]+)', window_str)
# matches结果为: [('X', '-10'), ('H', '30'), ('Y', '20'), ('W', '40')]

# 同样按需格式化并过滤
formatted_list = []
for key, value in matches:
    if key in ('X', 'Y'):
        formatted_list.append(f"{key} = {value}")
    else:
        formatted_list.append(f"{key}={value}")

final_window_list = [item for item in formatted_list if item.split('=')[0] in ('X', 'Y', 'W')]
print(final_window_list)
# 输出: ['X = -10', 'Y = 20', 'W=40']

小提示

  • 用split('=', 1)而不是直接split('='),是为了避免值中包含等号的极端情况(比如"CONFIG=DEBUG=ON"),确保只会拆分成键和值两部分。
  • 如果需要统一所有键值对的格式(比如都变成"键 = 值"),直接去掉判断逻辑,统一用f"{key} = {value}"即可。

内容的提问来源于stack exchange,提问作者user9081229

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:49:13