Python:每日一题 139:剔除列表中数字的倍数

已有一个由小到大数字组成列表,
list1 = [3, 7, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 30, 32, 34, 35, 36, 39, 41, 42, 43, 45, 48, 49, 53, 64, 74, 78, 80, 88, 90, 91, 95, 96, 103, 107, 116, 142, 148, 152, 153, 158, 163, 171, 173, 174, 175, 176, 179, 181, 188, 190, 201, 204, 207, 216, 218, 222, 231, 235, 239, 248, 250, 251, 253, 258, 262, 265, 278, 292, 295, 296, 301, 305, 313, 317, 320, 326, 332, 334, 347, 355, 357, 358, 363, 365, 366, 368, 375, 377, 381, 391, 414, 417, 426, 428, 437, 438, 445, 453, 459, 466, 474, 476, 477, 489, 494]
要求将数字是列表中其他数字倍数的剔除,如15, 24是3的倍数,就将15,24去除,14,21是7的倍数,就将14,21去除。注意数字仅是其本身的1倍,如3是3的1倍,是不需要去除的,否则最后的列表就成空的了。

要求给出最后剩余的列表。


Python源码:

list1 = [3, 7, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 24, \
         26, 27, 28, 30, 32, 34, 35, 36, 39, 41, 42, 43, 45, 48,\
         49, 53, 64, 74, 78, 80, 88, 90, 91, 95, 96, 103, 107, 116,\
         142, 148, 152, 153, 158, 163, 171, 173, 174, 175, 176, 179,\
         181, 188, 190, 201, 204, 207, 216, 218, 222, 231, 235, 239,\
         248, 250, 251, 253, 258, 262, 265, 278, 292, 295, 296, 301,\
         305, 313, 317, 320, 326, 332, 334, 347, 355, 357, 358, 363,\
         365, 366, 368, 375, 377, 381, 391, 414, 417, 426, 428, 437,\
         438, 445, 453, 459, 466, 474, 476, 477, 489, 494]
i = 0
while i < len(list1):
    j = i + 1
    while j < len(list1):
        if list1[j] % list1[i] == 0:
            list1.pop(j)
        else:
            j += 1
    i += 1
print(list1)

猜你喜欢

转载自blog.csdn.net/hcmdghv587/article/details/79944333