You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python时间AM与PM互转的代码错误排查及正确实现

解决AM/PM互转的代码逻辑错误

你的代码无法实现AM和PM的正确互转,问题出在连续两次replace的执行逻辑上:

  • 对于包含AM的字符串,第一次replace('AM','PM')会把它改成PM,紧接着第二次replace('PM','AM')又会把刚生成的PM改回AM,等于没有转换。
  • 对于包含PM的字符串,第一次replace找不到AM所以无变化,第二次replace才把PM换成AM,最终只有PM能转成AM,AM无法转成PM。

修复方案

以下几种方法都能实现正确的互转:

方法一:条件判断针对性替换

newtimes = ['10:31 PM', '10:03 PM', '12:26 AM', '07:40 PM', '09:32 PM']
for item in newtimes:
    if 'AM' in item:
        converted = item.replace('AM', 'PM')
    else:
        converted = item.replace('PM', 'AM')
    print(converted)

方法二:临时标记过渡替换

用一个不存在的临时标记避免两次替换的冲突:

newtimes = ['10:31 PM', '10:03 PM', '12:26 AM', '07:40 PM', '09:32 PM']
for item in newtimes:
    converted = item.replace('AM', 'TEMP').replace('PM', 'AM').replace('TEMP', 'PM')
    print(converted)

方法三:列表推导式批量处理(适合需要保存结果的场景)

newtimes = ['10:31 PM', '10:03 PM', '12:26 AM', '07:40 PM', '09:32 PM']
converted_times = [item.replace('AM', 'PM') if 'AM' in item else item.replace('PM', 'AM') for item in newtimes]
for time in converted_times:
    print(time)

输出结果

以上代码都会输出你期望的结果:

10:31 AM
10:03 AM
12:26 PM
07:40 AM
09:32 AM

内容的提问来源于stack exchange,提问作者vigneshwaran sr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:41:01