如何在Python 2.7中将两个列表合并为['x1','y2','z3']格式?
如何在Python 2.7中将两个列表合并为对应元素拼接的新列表?
嘿,这个需求其实挺常见的,在Python 2.7里有几种简单好用的方法能实现,我给你列出来:
方法1:列表推导式 + zip()(最简洁推荐)
zip()会把两个列表的对应元素一一配对,配合列表推导式可以快速完成拼接:
a = ['x','y','z'] b = [1,2,3] c = [item_a + str(item_b) for item_a, item_b in zip(a, b)] print(c) # 输出: ['x1', 'y2', 'z3']
注:Python 2.7中zip()直接返回配对后的列表,不需要像Python3那样额外转成list~
方法2:手动for循环(适合新手理解逻辑)
如果想更清晰地看到每一步的操作,用循环遍历索引拼接也是个好办法:
a = ['x','y','z'] b = [1,2,3] c = [] for i in range(len(a)): # 把数字转成字符串后和对应字母拼接,再加入新列表 combined_str = a[i] + str(b[i]) c.append(combined_str) print(c)
这个方法的好处是逻辑一目了然,适合刚接触Python的朋友理解元素配对的过程。
方法3:map() + lambda函数
用map()把拼接逻辑批量应用到两个列表的元素上,代码也很简洁:
a = ['x','y','z'] b = [1,2,3] c = map(lambda x, y: x + str(y), a, b) print(c) # Python2.7中map直接返回列表,输出结果符合要求
lambda函数在这里负责把每个字母和对应数字转成字符串后拼接,map()会自动处理元素配对。
小提醒
如果你的两个列表长度不一致,zip()和map()都会以较短的列表为准截断结果。要是需要处理长度不同的情况,就得额外加判断逻辑啦,但你的问题里两个列表长度相同,所以以上方法都能完美运行~
内容的提问来源于stack exchange,提问作者Wind_Eddies
相关产品推荐
相关产品推荐

