Python处理签到坐标字符串返回去空格升序列表问题咨询
问题分析
- 遍历逻辑错误:
checks = str(checkins)得到的是完整字符串,直接for elem in checks会遍历字符串的单个字符,而非按分号拆分后的坐标段,导致最终结果拆成了单个字符的列表。 - 拆分顺序错误:应该先对整个字符串按分号
;拆分,再对每个拆分后的元素做去空格处理,而非先处理单个字符再拆分。 - 缺少过滤空值和排序步骤:拆分后可能存在空元素需要剔除,且最终结果需要按升序排列。
修复后的代码
def location_list(checkins): """ takes input of check in and return the locations from the given checkins""" # 先按分号拆分整个字符串,逐个去首尾空格,过滤空值后升序排列 parts = str(checkins).split(';') final = [p.strip() for p in parts if p.strip()] final.sort() return final
测试验证
测试代码:
checkins = '(33.63, -111.92); (33.34, -111.88); (33.57, -111.93); (33.26, -111.88);(33.55, -111.93)' print(location_list(checkins))
输出结果:
['(33.26, -111.88)', '(33.34, -111.88)', '(33.55, -111.93)', '(33.57, -111.93)', '(33.63, -111.92)']
内容的提问来源于stack exchange,提问作者Dreamer
相关产品推荐
相关产品推荐

