如何在Python中正确使用双层循环?解决列表重复添加问题
问题分析
你的代码里外层循环遍历了services的所有键('first'和'second',共2个),所以内层的append循环会被触发两次,每次都把x的全部元素添加到services['first']中,最终导致元素重复。
解决方法
方法1:直接移除外层循环(最简洁)
既然你只需要给'first'对应的列表添加元素,完全不需要遍历整个services字典,直接操作目标键即可:
services = { 'first':[], 'second':[] } x = [1,2,3,4,5] # 直接遍历x添加元素 for i in x: services['first'].append(i) print(services)
更高效的写法是直接赋值(避免循环append):
services['first'] = x.copy() # 使用copy防止后续修改x影响services内的列表 # 或者用切片实现复制:services['first'] = x[:]
方法2:保留外层循环但添加判断逻辑
如果你的实际场景中需要遍历services的键,但只对'first'执行添加操作,可以加条件判断:
services = { 'first':[], 'second':[] } x = [1,2,3,4,5] for key in services: print('loop-one - ', key) if key == 'first': # 仅当键为'first'时执行添加 for i in x: services[key].append(i) print(services)
内容的提问来源于stack exchange,提问作者no name
相关产品推荐
相关产品推荐

