python 列表循环中的小问题
2017-03-29 本文已影响36人
Cocoa_Coder
项目中遇到的一些问题,做个笔记
贴代码
#判断一个元素是否在列表中
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方法会重新开辟一块内存,这样这两个变量就会互不干扰了.