python 子列表合并,没有进行赋值操作,为什么值会变化?-灵析社区

momo

l = [['a','b',1], ['a','c',2], ['a','b',3], ['a','c',4], ['a','b',5]] L = [] for i in range (len(l)): flag = True for j in range(len(L)): if L[j][:-1] == l[i][:-1]: flag = False z=j break if flag == True: L.append(l[i]) else: L[z][-1] = L[z][-1] + l[i][-1] print('l: ') print(l) print('L: ') print(L) 输出为: l: [['a', 'b', 1], ['a', 'c', 2], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L: [['a', 'b', 1]] l: [['a', 'b', 1], ['a', 'c', 2], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L: [['a', 'b', 1], ['a', 'c', 2]] l: [['a', 'b', 4], ['a', 'c', 2], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L: [['a', 'b', 4], ['a', 'c', 2]] l: [['a', 'b', 4], ['a', 'c', 6], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L: [['a', 'b', 4], ['a', 'c', 6]] l: [['a', 'b', 9], ['a', 'c', 6], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L: [['a', 'b', 9], ['a', 'c', 6]] 我想实现的是,把子列表中前两个字符相同的合并,最后一位的值相加,放到新列表中 但是我没有给l赋值,为什么l列表里的值也变了呢

阅读量:19

点赞量:0

问AI
WhatUpDanger
l = [['a', 'b', 1], ['a', 'c', 2], ['a', 'b', 3], ['a', 'c', 4], ['a', 'b', 5]] L = [] for i in range(len(l)): flag = True for j in range(len(L)): if L[j][:-1] == l[i][:-1]: flag = False z = j break if flag: L.append(l[i][:]) else: L[z][-1] += l[i][-1] # 输出测试结果 l, L