本帖最后由 炸弹二锅头 于 2020-8-31 19:06 编辑
data_source 数据源列表是一个嵌套列表,有一些地址,我想把省和直辖市选出来组成新的列表
[Python] 纯文本查看 复制代码 temp = [f"{i[1][:3]}" for i in data_source]# print(temp, len(temp))
keys = sorted(list(set(temp)), key=temp.index)
print(keys, len(keys))
# 由于用的前三个字符,所以“新疆”、“宁夏”要调整。
for k in keys:
if k[:2] in ["宁夏", "新疆"]:
keys.remove(k)
keys.extend(["宁夏", "新疆"])
print(keys, len(keys), "新疆巴" in keys)
输出结果:
[Python] 纯文本查看 复制代码 ['北京市', '江苏省', '上海市', '浙江省', '河南省', '河北省', '辽宁省', '安徽省', '湖北省', '天津市', '内蒙古', '山东省', '黑龙江', '陕西省', '山西省', '吉林省', '甘肃省', '新疆乌', '新疆巴', '宁夏银', '青海省', '新疆阿', '海南省'] 23
['北京市', '江苏省', '上海市', '浙江省', '河南省', '河北省', '辽宁省', '安徽省', '湖北省', '天津市', '内蒙古', '山东省', '黑龙江', '陕西省', '山西省', '吉林省', '甘肃省', '新疆巴', '青海省', '海南省', '宁夏', '新疆'] 22 True
小白不明白的地方在于,为什么列表中的 “新疆巴” 还在,没有被删掉? 谢谢大佬们
PS:
[Python] 纯文本查看 复制代码 # 先把字典中的键,用列表的方式生成。要保留“省”、“市”所以用前三个字符切片
temp = [f"{i[1][:3]}" for i in data_source]
# print(temp, len(temp))
keys = list(set(temp))
print(keys, len(keys))
# 由于用的前三个字符,所以“新疆”、“宁夏”要调整。
for k in keys:
if k[:2] in ['宁夏', '新疆']:
keys.remove(k)
keys.extend(["宁夏", "新疆"])
print(keys, len(keys), "新疆巴" in keys)
我把排序命令去掉之后,每次列表顺序都随机,然后我发现,结果也是随机的,有时候就可以成功剔除我想要剔除的元素,有时候会随机留下来其它元素,每次都不一样。所以我觉得我应该换一种方式删除列表中的指定元素。
|