首页 > 解决方案 > Python:使用第三个列表提供的值将一列添加到列表列表

问题描述

我有一个由函数生成的列表列表,可以有 0 到 300 个名称对之间的任何位置,数据如下:

sales reps = [('David', 'Anderson'), ('Darla', 'Becker'), ('Charlie', 'Davis')]

我还有一个名为regions.

regions = ['Pacific', 'Midwest', 'East', 'Northwest', ...] 

我想添加第三列,通过迭代sales_reps将其分配给它,以便我最终得到:regionregions

sales reps_new = [('David', 'Anderson', 'Pacific'), ('Darla', 'Becker', 'Midwest'), ('Charlie', 'Davis', 'East')]

我已经尝试过zip(),但这会在区域末尾切断列表,这样如果 sales_reps 有 30 个条目而区域有 4 个,zip则只会给我 4 个。

标签: python

解决方案


尝试以下代码:

regionsCount = len(regions)
j=0
temp_list = list()
for i in sales_reps:
   if j>=regionsCount:
       j=0
   temp = list(i)
   temp.append(regions[j])
   temp_list.append(tuple(temp))
   j = j+1

sales_reps = temp_list

如果区域小于 sales_reps 列表,上面的代码将重复这些区域。


推荐阅读