美文网首页
python 列表循环中的小问题

python 列表循环中的小问题

作者: Cocoa_Coder | 来源:发表于2017-03-29 12:10 被阅读36次

    项目中遇到的一些问题,做个笔记
    贴代码

    #判断一个元素是否在列表中
    def elementInLsit(cityname):
    
        citysName = ['西宁', '惠州', '牡丹江', '本溪', '银川', '延安', '章丘', '石家庄', 
                     '成都', '淄博', '福州', '济宁', '泰州', '中山', '汕头', '金华', '濮阳',
                
                     '桂林', '洛阳', '安阳', '唐山', '泰安', '温州', '宿迁', '漳州', '扬州', '丽水']
    
    
        result = False
        for city in citysName:
            if str(cityname) == str(city):
                # 存在
                result = True
    
        return result
    
    Citynames  = [ '鞍山', '安阳','安庆', '安康', '安顺', '阿坝',
                     '阿克苏', '阿里', '阿拉尔', '阿拉善盟', '澳门',
                    '北京', '保定', '包头', '滨州', '宝鸡', '蚌埠', '本溪', '北海', '巴音郭楞', '巴中',
                  
             '定安', '琼中', '屯昌', '文昌市', '东海', '陵水', '琼海', '保亭', '万宁', '东方市', '宁国', '天长']
    
    
    print(len(anCitynames))
    
    
    tumpList2 = anCitynames 
    
    
    print(len(tumpList2))
    
    for cityname in anCitynames:
        if elementInLsit(cityname):
            tumpList2.remove(cityname)
    
    
    
    
    print(len(tumpList2))
    
    
    

    python的列表list可以用for循环进行遍历,实际开发中发现一个问题,就是遍历的时候删除会出错
    第一个数组是 第二个数组 的子集(这是前提) ,也就是说第一个数组中的元素全部在第二个数组中,一开始怎么都对不上数,究其原因是因为这一句
    tumpList2 = anCitynames
    赋值有问题.如果这样赋值,这俩变量公用一块内存,一个改变,另一个也会改变,导致出现各种问题,正确赋值方法为 tumpList2 = list(anCitynames)
    list方法会重新开辟一块内存,这样这两个变量就会互不干扰了.

    相关文章

      网友评论

          本文标题:python 列表循环中的小问题

          本文链接:https://www.haomeiwen.com/subject/jpueottx.html