关于将循环得到的字典添加到列表中出现重复最后一个字典的问题解决方案

我的问题:这是代码,我想在41行输出13个字典之后,把这些字典放到一个列表里。但是输出的列表是13个最后一个字典。

delta_neighbor_dict = dict()
delta_neighbor = list()
for index in range(data1.shape[1]):
    for k in range(data1.shape[0]):
        delta_neighbor_list = list()
        for v in range(data1.shape[0]):
            #欧氏距离计算样本间距离
            dis = np.sqrt(np.sum(np.square(data1[k] - data1[v])))
            if dis <= neighbor_list[index]:
                delta_neighbor_list.append(v)
            delta_neighbor_dict.update({k: delta_neighbor_list})
    print(delta_neighbor_dict)
    delta_neighbor.append(delta_neighbor_dict)
print(delta_neighbor)

(1)41行输出的13个字典:

 (2)42行我想把这13个字典添加到一个列表中

(3)但是输出的结果中:

[{0: [0, 20, 56], 1: [1], 2: [2], 3: [3], 4: [4], 5: [5, 18, 49, 53], 6: [6, 29], 7: [7], 8: [8], 9: [9, 29, 42, 47, 54, 56], 10: [10, 31], 11: [11, 12, 27], 12: [11, 12, 26, 27, 51, 57], 13: [13], 14: [14], 15: [15, 53, 57], 16: [16, 17, 48, 53], 17: [16, 17, 53], 18: [5, 18], 19: [19], 20: [0, 20, 40, 56], 21: [21], 22: [22, 23, 24, 29, 35], 23: [22, 23, 24, 35], 24: [22, 23, 24, 35], 25: [25], 26: [12, 26, 57], 27: [11, 12, 27, 37, 38], 28: [28], 29: [6, 9, 22, 29, 35], 30: [30], 31: [10, 31], 32: [32], 33: [33], 34: [34, 36, 37], 35: [22, 23, 24, 29, 35, 44], 36: [34, 36, 37], 37: [27, 34, 36, 37, 38], 38: [27, 37, 38], 39: [39], 40: [20, 40, 44, 56], 41: [41], 42: [9, 42, 47], 43: [43], 44: [35, 40, 44, 47], 45: [45], 46: [46], 47: [9, 42, 44, 47, 54, 56], 48: [16, 48], 49: [5, 49], 50: [50], 51: [12, 51], 52: [52], 53: [5, 15, 16, 17, 53, 57], 54: [9, 47, 54, 56], 55: [55], 56: [0, 9, 20, 40, 47, 54, 56], 57: [12, 15, 26, 53, 57], 58: [58], 59: [59], 60: [60], 61: [61], 62: [62], 63: [63, 98], 64: [64], 65: [65], 66: [66], 67: [67, 104], 68: [68], 69: [69], 70: [70], 71: [71], 72: [72], 73: [73], 74: [74], 75: [75], 76: [76], 77: [77], 78: [78], 79: [79], 80: [80, 85, 97], 81: [81, 104], 82: [82, 86, 87, 89], 83: [83], 84: [84], 85: [80, 85], 86: [82, 86], 87: [82, 87], 88: [88, 91], 89: [82, 89], 90: [90, 91, 92], 91: [88, 90, 91, 107], 92: [90, 92, 107], 93: [93], 94: [94], 95: [95], 96: [96], 97: [80, 97], 98: [63, 98], 99: [99], 100: [100], 101: [101], 102: [102, 125], 103: [103], 104: [67, 81, 104, 106, 116], 105: [105], 106: [104, 106, 116], 107: [91, 92, 107], 108: [108], 109: [109], 110: [110], 111: [111, 125], 112: [112], 113: [113], 114: [114, 125], 115: [115], 116: [104, 106, 116], 117: [117, 128], 118: [118], 119: [119], 120: [120], 121: [121], 122: [122], 123: [123], 124: [124], 125: [102, 111, 114, 125, 126], 126: [125, 126], 127: [127], 128: [117, 128], 129: [129], 130: [130], 131: [131, 132, 133], 132: [131, 132], 133: [131, 133], 134: [134], 135: [135], 136: [136], 137: [137], 138: [138, 165], 139: [139, 140, 162], 140: [139, 140, 142, 162], 141: [141], 142: [140, 142, 161, 162], 143: [143], 144: [144], 145: [145, 163], 146: [146], 147: [147, 160], 148: [148, 156, 164, 167, 172, 174], 149: [149], 150: [150], 151: [151], 152: [152], 153: [153], 154: [154], 155: [155, 173], 156: [148, 156], 157: [157], 158: [158, 159], 159: [158, 159], 160: [147, 160], 161: [142, 161], 162: [139, 140, 142, 162], 163: [145, 163, 170], 164: [148, 164, 167, 172], 165: [138, 165], 166: [166, 168, 174], 167: [148, 164, 167, 171], 168: [166, 168], 169: [169], 170: [163, 170], 171: [167, 171], 172: [148, 164, 172], 173: [155, 173], 174: [148, 166, 174], 175: [175], 176: [176], 177: [177]}, {0: [0, 20, 56], 1: [1], 2: [2], 3: [3], 4: [4], 5: [5, 18, 49, 53], 6: [6, 29], 7: [7], 8: [8], 9: [9, 29, 42, 47, 54, 56], 10: [10, 31], 11: [11, 12, 27], 12: [11, 12, 26, 27, 51, 57], 13: [13], 14: [14], 15: [15, 53, 57], 16: [16, 17, 48, 53], 17: [16, 17, 53], 18: [5, 18], 19: [19], 20: [0, 20, 40, 56], 21: [21], 22: [22, 23, 24, 29, 35], 23: [22, 23, 24, 35], 24: [22, 23, 24, 35], 25: [25], 26: [12, 26, 57], 27: [11, 12, 27, 37, 38], 28: [28], 29: [6, 9, 22, 29, 35], 30: [30], 31: [10, 31], 32: [32], 33: [33], 34: [34, 36, 37], 35: [22, 23, 24, 29, 35, 44], 36: [34, 36, 37], 37: [27, 34, 36, 37, 38], 38: [27, 37, 38], 39: [39], 40: [20, 40, 44, 56], 41: [41], 42: [9, 42, 47], 43: [43], 44: [35, 40, 44, 47], 45: [45], 46: [46], 47: [9, 42, 44, 47, 54, 56], 48: [16, 48], 49: [5, 49], 50: [50], 51: [12, 51], 52: [52], 53: [5, 15, 16, 17, 53, 57], 54: [9, 47, 54, 56], 55: [55], 56: [0, 9, 20, 40, 47, 54, 56], 57: [12, 15, 26, 53, 57], 58: [58], 59: [59], 60: [60], 61: [61], 62: [62], 63: [63, 98], 64: [64], 65: [65], 66: [66], 67: [67, 104], 68: [68], 69: [69], 70: [70], 71: [71], 72: [72], 73: [73], 74: [74], 75: [75], 76: [76], 77: [77], 78: [78], 79: [79], 80: [80, 85, 97], 81: [81, 104], 82: [82, 86, 87, 89], 83: [83], 84: [84], 85: [80, 85], 86: [82, 86], 87: [82, 87], 88: [88, 91], 89: [82, 89], 90: [90, 91, 92], 91: [88, 90, 91, 107], 92: [90, 92, 107], 93: [93], 94: [94], 95: [95], 96: [96], 97: [80, 97], 98: [63, 98], 99: [99], 100: [100], 101: [101], 102: [102, 125], 103: [103], 104: [67, 81, 104, 106, 116], 105: [105], 106: [104, 106, 116], 107: [91, 92, 107], 108: [108], 109: [109], 110: [110], 111: [111, 125], 112: [112], 113: [113], 114: [114, 125], 115: [115], 116: [104, 106, 116], 117: [117, 128], 118: [118], 119: [119], 120: [120], 121: [121], 122: [122], 123: [123], 124: [124], 125: [102, 111, 114, 125, 126], 126: [125, 126], 127: [127], 128: [117, 128], 129: [129], 130: [130], 131: [131, 132, 133], 132: [131, 132], 133: [131, 133], 134: [134], 135: [135], 136: [136], 137: [137], 138: [138, 165], 139: [139, 140, 162], 140: [139, 140, 142, 162], 141: [141], 142: [140, 142, 161, 162], 143: [143], 144: [144], 145: [145, 163], 146: [146], 147: [147, 160], 148: [148, 156, 164, 167, 172, 174], 149: [149], 150: [150], 151: [151], 152: [152], 153: [153], 154: [154], 155: [155, 173], 156: [148, 156], 157: [157], 158: [158, 159], 159: [158, 159], 160: [147, 160], 161: [142, 161], 162: [139, 140, 142, 162], 163: [145, 163, 170], 164: [148, 164, 167, 172], 165: [138, 165], 166: [166, 168, 174], 167: [148, 164, 167, 171], 168: [166, 168], 169: [169], 170: [163, 170], 171: [167, 171], 172: [148, 164, 172], 173: [155, 173], 174: [148, 166, 174], 175: [175], 176: [176], 177: [177]}, {0: [0, 20, 56], 1: [1], 2: [2], 3: [3], 4: [4], 5: [5, 18, 49, 53], 6: [6, 29], 7: [7], 8: [8], 9: [9, 29, 42, 47, 54, 56], 10: [10, 31], 11: [11, 12, 27], 12: [11, 12, 26, 27, 51, 57], 13: [13], 14: [14], 15: [15, 53, 57], 16: [16, 17, 48, 53], 17: [16, 17, 53], 18: [5, 18], 19: [19], 20: [0, 20, 40, 56], 21: [21], 22: [22, 23, 24, 29, 35], 23: [22, 23, 24, 35], 24: [22, 23, 24, 35], 25: [25], 26: [12, 26, 57], 27: [11, 12, 27, 37, 38], 28: [28], 29: [6, 9, 22, 29, 35], 30: [30], 31: [10, 31], 32: [32], 33: [33], 34: [34, 36, 37], 35: [22, 23, 24, 29, 35, 44], 36: [34, 36, 37], 37: [27, 34, 36, 37, 38], 38: [27, 37, 38], 39: [39], 40: [20, 40, 44, 56], 41: [41], 42: [9, 42, 47], 43: [43], 44: [35, 40, 44, 47], 45: [45], 46: [46], 47: [9, 42, 44, 47, 54, 56], 48: [16, 48], 49: [5, 49], 50: [50], 51: [12, 51], 52: [52], 53: [5, 15, 16, 17, 53, 57], 54: [9, 47, 54, 56], 55: [55], 56: [0, 9, 20, 40, 47, 54, 56], 57: [12, 15, 26, 53, 57], 58: [58], 59: [59], 60: [60], 61: [61], 62: [62], 63: [63, 98], 64: [64], 65: [65], 66: [66], 67: [67, 104], 68: [68], 69: [69], 70: [70], 71: [71], 72: [72], 73: [73], 74: [74], 75: [75], 76: [76], 77: [77], 78: [78], 79: [79], 80: [80, 85, 97], 81: [81, 104], 82: [82, 86, 87, 89], 83: [83], 84: [84], 85: [80, 85], 86: [82, 86], 87: [82, 87], 88: [88, 91], 89: [82, 89], 90: [90, 91, 92], 91: [88, 90, 91, 107], 92: [90, 92, 107], 93: [93], 94: [94], 95: [95], 96: [96], 97: [80, 97], 98: [63, 98], 99: [99], 100: [100], 101: [101], 102: [102, 125], 103: [103], 104: [67, 81, 104, 106, 116], 105: [105], 106: [104, 106, 116], 107: [91, 92, 107], 108: [108], 109: [109], 110: [110], 111: [111, 125], 112: [112], 113: [113], 114: [114, 125], 115: [115], 116: [104, 106, 116], 117: [117, 128], 118: [118], 119: [119], 120: [120], 121: [121], 122: [122], 123: [123], 124: [124], 125: [102, 111, 114, 125, 126], 126: [125, 126], 127: [127], 128: [117, 128], 129: [129], 130: [130], 131: [131, 132, 133], 132: [131, 132], 133: [131, 133], 134: [134], 135: [135], 136: [136], 137: [137], 138: [138, 165], 139: [139, 140, 162], 140: [139, 140, 142, 162], 141: [141], 142: [140, 142, 161, 162], 143: [143], 144: [144], 145: [145, 163], 146: [146], 147: [147, 160], 148: [148, 156, 164, 167, 172, 174], 149: [149], 150: [150], 151: [151], 152: [152], 153: [153], 154: [154], 155: [155, 173], 156: [148, 156], 157: [157], 158: [158, 159], 159: [158, 159], 160: [147, 160], 161: [142, 161], 162: [139, 140, 142, 162], 163: [145, 163, 170], 164: [148, 164, 167, 172], 165: [138, 165], 166: [166, 168, 174], 167: [148, 164, 167, 171], 168: [166, 168], 169: [169], 170: [163, 170], 171: [167, 171], 172: [148, 164, 172], 173: [155, 173], 174: [148, 166, 174], 175: [175], 176: [176], 177: [177]}.......

这一个列表中,全都是最后一个字典,一共13个字典全是最后一个字典。

试了好多方法都不行,觉得自己的代码写的没错。后来拜托了朋友的朋友,才找到解决方案!

delta_neighbor_dict = dict()
delta_neighbor = list()#存放每个属性对应邻域的样本集合
for index in range(data1.shape[1]):
    delta_neighbor_dict=dict()
    for k in range(data1.shape[0]):
        delta_neighbor_list = list()
        for v in range(data1.shape[0]):
            #欧氏距离计算样本间距离
            dis = np.sqrt(np.sum(np.square(data1[k] - data1[v])))
            if dis <= neighbor_list[index]:
                delta_neighbor_list.append(v)
            delta_neighbor_dict.update({k: delta_neighbor_list})
    delta_neighbor.append(delta_neighbor_dict)
print(delta_neighbor)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值