如何将两个列表交错合并为带冒号格式的目标列表?
问题描述
现有列表:
a = ['a', 'b', 'c'] b = [10, 20, 30]
期望输出格式为 [[a:10], [b:20], [c:30]]。
目前使用zip方法实现交错合并的代码如下:
l = [] for x,y in zip(a,b): l.append([x,y])
但输出结果为 [['a', 10], ['b', 20], ['c', 30]],不符合带冒号的格式,需要修改代码得到目标格式。
解决方法
你要的[x:y]格式本质是字符串形式的内容——Python原生语法里不存在[a:10]这种列表元素结构(会触发语法错误),所以必须把x和y拼接成带冒号的字符串,再放入子列表中。
修改后的代码:
a = ['a', 'b', 'c'] b = [10, 20, 30] l = [] for x, y in zip(a, b): # 拼接成"x:y"格式的字符串,再放入子列表 l.append([f"{x}:{y}"]) print(l) # 输出:[['a:10'], ['b:20'], ['c:30']]
如果想简化写法,可以用列表推导式:
a = ['a', 'b', 'c'] b = [10, 20, 30] l = [[f"{x}:{y}"] for x, y in zip(a, b)] print(l)
补充:如果你的真实需求是存储键值对而非字符串,建议使用字典结构(比如
{'a':10}),这才是Python中存储键值映射的标准方式。
内容的提问来源于stack exchange,提问作者CCM
相关产品推荐
相关产品推荐

