首页 新闻 搜索 专区 学院

Python

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-05 22:17
 1 def checkio(data):
  
def checkio(data):
    for i in data:
        num = data.count(i)
        if num == 1:
            data.remove(i)
    return data

if __name__ == "__main__":
   print checkio([1, 2, 3, 4, 5])
       
请问结果为什么是" [2,4] ",而不是" [] " 
大Yi巴狼的主页 大Yi巴狼 | 初学一级 | 园豆:149
提问于:2013-08-04 16:21
< >
分享
最佳答案
1
def checkio(data):
    for i in data:
        num = data.count(i)
        print i
        print num
        if num == 1:
            data.remove(i)
            '''
            从列表中移除元素,i值依然在增加;
            第一次循环i=1,data为[1,2,3,4,5],移除了1
            第二次循环i=2,新列表为[2,3,4,5],结果移除了3
            第二次循环i=3,新列表为[2,4,5],结果移除了5
            不符合条件,退出循环,所以list 中只有2,4
            '''
        print data
    return data

if __name__ == "__main__":
   print checkio([1,2,3,4,5])
收获园豆:10
21天后 | 初学一级 |园豆:3 | 2013-08-04 23:00

哦,这样啊    谢谢你哦    那请问如何才能删掉表里全部元素呢 使它成为空表 用Loop ?

大Yi巴狼 | 园豆:149 (初学一级) | 2013-08-05 00:06

我弱弱的问一句。remove不是移除第一个匹配项吗?i= 1 的时候移除的是1,i=2的时候不是该移除2吗?

Kikyo_wuqiyu | 园豆:200 (初学一级) | 2015-12-18 14:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册