python题库 No.26 城市整理

城市大整理啦!请将下面城市(列表cities)四川省城市外的城市删除。
最后输出结果。
要求:循环体通过for循环实现。

实际答案:

cities = ["四川成都","四川泸州","四川雅安","湖北荆州","湖北武汉","北京","广东深圳","广东广州","重庆"]
cities_new = []
for i in cities:
  if "四川" in i:
    cities_new.append(i)
  else:
    continue

print(cities_new)

标准答案:
image

点评:
实际答案一开始使用的程序为:

cities = ["四川成都", "四川泸州", "四川雅安", "湖北荆州", "湖北武汉", "北京", "广东深圳", "广东广州", "重庆"]
for i in cities:
    if "四川" in i:
        continue
    else:
        cities.remove(i)
print(cities)

但实际运行出出现了问题,由于使用remove去除列表元素后,元素的索引值改变了,导致部分元素跳过了条件判断。
除了使用append的方法解决外,还可以使用列表推导式,这是一种语法糖:

cities = ["四川成都", "四川泸州", "四川雅安", "湖北荆州", "湖北武汉", "北京", "广东深圳", "广东广州", "重庆"]
filtered_cities = [city for city in cities if "四川" in city]
print(filtered_cities)``
posted @ 2025-12-07 17:30  居哥wxg  阅读(2)  评论(0)    收藏  举报