如何将列表元素交替分配至含子列表的已有列表?(Python无导入)
交替分配玩家至两组的Python解决方案
问题需求
现有玩家列表 players = ['steve','gary','simon','kevin'],以及带组长的分组列表 groups = [['leader1'],['leader2']],需要将玩家交替分配到两个组中,最终得到:groups = [['leader1','steve','simon'],['leader2','gary','kevin']]
方案一:枚举索引判断奇偶
通过enumerate获取每个玩家的索引,利用索引奇偶性决定分配到哪一组,代码简洁直接:
players = ['steve','gary','simon','kevin'] groups = [['leader1'],['leader2']] for idx, player in enumerate(players): # 偶数索引(0、2...)分配到第一组,奇数索引(1、3...)分配到第二组 groups[idx % 2].append(player) print(groups) # 输出结果:[['leader1', 'steve', 'simon'], ['leader2', 'gary', 'kevin']]
方案二:切片分组后扩展
利用Python列表切片直接拆分玩家为两组,再分别扩展到对应分组中:
players = ['steve','gary','simon','kevin'] groups = [['leader1'],['leader2']] # 切片获取偶数位和奇数位的玩家 group1_add = players[::2] # 取索引0、2的元素:['steve', 'simon'] group2_add = players[1::2] # 取索引1、3的元素:['gary', 'kevin'] # 扩展到对应分组 groups[0].extend(group1_add) groups[1].extend(group2_add) print(groups)
两种方案均无需导入任何库,仅使用Python基础语法即可实现需求。
内容的提问来源于stack exchange,提问作者ztyxiz
相关产品推荐
相关产品推荐

