如何为Python元组列表中的元组新增color成员?
Python元组列表扩展实现方法
下面是几种将原三元组列表扩展为四元组列表的实用方法:
方法一:列表推导式(推荐,简洁高效)
利用元组的拼接特性,通过列表推导式批量生成新元组:
# 原三元组列表 a = [('1', 'hello', 'en'), ('2', 'world', 'en'), ('3', 'bonjour', 'fr')] # 扩展为包含color字段的四元组列表 b = [t + ('red',) for t in a]
元组是不可变类型,t + ('red',)会创建一个新的四元素元组,推导式自动遍历原列表完成所有元素的扩展。
方法二:循环遍历构建(直观易懂)
适合新手理解的基础写法,手动遍历每个元素并构建新元组:
a = [('1', 'hello', 'en'), ('2', 'world', 'en')] b = [] for item in a: # 提取原元组的三个元素,加上color值组成新元组 new_tuple = (item[0], item[1], item[2], 'red') b.append(new_tuple)
方法三:map函数(函数式风格)
用map结合匿名函数处理每个元组:
a = [('1', 'hello', 'en'), ('2', 'world', 'en')] b = list(map(lambda t: t + ('red',), a))
map会将原列表的每个元组传入lambda函数进行拼接,最后转成列表得到结果。
扩展场景:每个元组对应不同color值
如果color不是固定的red,而是每个元组有对应的颜色,可以结合zip实现:
a = [('1', 'hello', 'en'), ('2', 'world', 'en'), ('3', 'bonjour', 'fr')] colors = ['red', 'blue', 'green'] b = [t + (color,) for t, color in zip(a, colors)]
内容的提问来源于stack exchange,提问作者Andrey Kazak
相关产品推荐
相关产品推荐

