因为你列表中的元素,有的是 " " 两个空格,甚至多个,而你 while 循环判断的是 " " 一个空格
且 remove 移除的也是 一个空格,导致你的列表去除不掉无用的空格,用 for 循环倒置去除即可,参考代码:
- title_list = ['建安小区 5楼 80平米 三室一厅一卫 带下房 41.5万', ' ', ' ', '广告', ' ', '3', ' ', '室', ' ', '1', ' ', '厅', ' ', '1', ' ', '卫', ' ', '\n 79㎡\n ', ' ', '南', ' ', '\n 高层(共6层)\n ', ' ', '\n 1996年建造\n ', ' ', '建安小区', ' ', '山海关', '南门', '老龙头路', ' ', '满五年', '新上', ' ', ' ', '郭桂香', ' ', ' ', '4.5分', ' ', '山海美中介', ' ', ' ', ' ', ' ', '41.5', ' ', '万', ' ', '5254元/㎡']
- for i in title_list[::-1]:
- if i.strip() == "":
- title_list.remove(i)
- print(title_list)
复制代码
或者用过滤器:
- title_list = ['建安小区 5楼 80平米 三室一厅一卫 带下房 41.5万', ' ', ' ', '广告', ' ', '3', ' ', '室', ' ', '1', ' ', '厅', ' ', '1', ' ', '卫', ' ', '\n 79㎡\n ', ' ', '南', ' ', '\n 高层(共6层)\n ', ' ', '\n 1996年建造\n ', ' ', '建安小区', ' ', '山海关', '南门', '老龙头路', ' ', '满五年', '新上', ' ', ' ', '郭桂香', ' ', ' ', '4.5分', ' ', '山海美中介', ' ', ' ', ' ', ' ', '41.5', ' ', '万', ' ', '5254元/㎡']
- title_list = list(filter(lambda x : x.strip(), title_list))
- print(title_list)
复制代码
用 map 处理无用数据后效果更好:
- title_list = ['建安小区 5楼 80平米 三室一厅一卫 带下房 41.5万', ' ', ' ', '广告', ' ', '3', ' ', '室', ' ', '1', ' ', '厅', ' ', '1', ' ', '卫', ' ', '\n 79㎡\n ', ' ', '南', ' ', '\n 高层(共6层)\n ', ' ', '\n 1996年建造\n ', ' ', '建安小区', ' ', '山海关', '南门', '老龙头路', ' ', '满五年', '新上', ' ', ' ', '郭桂香', ' ', ' ', '4.5分', ' ', '山海美中介', ' ', ' ', ' ', ' ', '41.5', ' ', '万', ' ', '5254元/㎡']
- m = map(lambda x:x.replace("\n", "").strip(), title_list)
- print(list(filter(lambda x:x, m)))
复制代码
|