如何将同索引二元元组元素前置到对应浮点数列表并合并?
解决方案
首先,你核心需求是将两个列表的对应元素拼接,把二元元组的内容放到浮点数列表的开头。之前的代码问题在于:
- 第一个用
zip得到的是元组对,不是合并后的列表; - 第二个嵌套循环逻辑错误,会重复添加
team_year的元素。
最简实现方式
假设你已经生成了两个长度均为640的列表:
team_year:每个元素是二元元组(或已转成列表)empty_list(或team_stats_list):每个元素是浮点数组成的列表
直接用列表推导式就能完成批量合并:
# 如果team_year里是元组,先转成列表再拼接 combined_lists = [list(tuple_item) + float_list for tuple_item, float_list in zip(team_year, empty_list)] # 如果你已经把team_year转成了列表(比如你代码里的team_year = [list(x) for x in team_year]),可以简化为: # combined_lists = [tuple_list + float_list for tuple_list, float_list in zip(team_year, empty_list)]
逐行循环的等价写法(更易理解)
如果觉得列表推导式不够直观,也可以用普通循环:
combined_lists = [] for tuple_item, float_list in zip(team_year, empty_list): # 把元组转成列表,再和浮点数列表拼接 merged = list(tuple_item) + float_list combined_lists.append(merged)
结合你原有代码的修改
把第一个代码片段的最后一行替换成上面的列表推导式即可,完整修改后:
empty_list = [] # 这一步可以保留,也可以在拼接时再转列表 team_year = [list(x) for x in team_year] for i,v in enumerate(cbb_team_sites): y = pd.read_html(v)[1] y = list((y.loc[0].T)[1:]) empty_list.append(y) # 替换原来的zip,改成合并列表 combined_lists = [t + fl for t, fl in zip(team_year, empty_list)]
内容的提问来源于stack exchange,提问作者jcook32
相关产品推荐
相关产品推荐

