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

如何在Python中将字典值转为字符串后扩展已有列表?

问题:将字典的值转为字符串后扩展已有列表

现有Python代码:

x = [ 'h1', 'h2' ]
y = [ 'h3', 'h4' ]
dict_sample = {'xyz': ['ab', 'bc'], 'mno': ['cd', 'de']}

执行x.extend(dict_sample.keys())后得到输出:['h1', 'h2', 'xyz', 'mno'];
执行y.extend(dict_sample.values())后得到输出:['h3', 'h4', ['ab', 'bc'], ['cd', 'de']]。

需要实现的是让y扩展后得到目标输出:['h3', 'h4', "['ab', 'bc']", "['cd', 'de']"](注:目标输出中用双引号包裹字符串以避免语法冲突,实际效果为列表元素是字符串形式的子列表)


解决方法

方法1:列表推导式转换每个值为字符串

遍历字典的values(),将每个子列表转为字符串后扩展y:

y.extend(str(val) for val in dict_sample.values())

执行后y的结果:

['h3', 'h4', "['ab', 'bc']", "['cd', 'de']"]

方法2:使用map()函数批量转换

通过map()将str函数应用到所有值上,直接传入extend():

y.extend(map(str, dict_sample.values()))

效果与方法1完全一致,写法更简洁。

方法3:自定义字符串格式(可选)

如果需要定制字符串样式(比如调整引号类型),可以用repr()或手动格式化:

# 使用repr()生成Python语法一致的字符串
y.extend(repr(val) for val in dict_sample.values())

# 手动格式化(示例:自定义引号和分隔符)
y.extend(f"[{', '.join(f'{repr(item)}' for item in val)}]" for val in dict_sample.values())

repr()的输出与str()在本场景下相同,但对于其他数据类型可能有差异;手动格式化则可完全自定义输出样式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:50:24