Python 使用map dosen';将字符串转换为int;不包括零

Python 使用map dosen';将字符串转换为int;不包括零,python,python-3.x,Python,Python 3.x,我对此的输入格式为07:05:09PM 预期产出: 19:05:09 获得的输出: 19:5:9 我的问题是,当我使用map将日期从字符串转换为int时,没有选择零,是否有任何方法可以获得这样的整数???如果您不想使用自定义函数格式化日期时间,您可以通过在打印时格式化字符串来获得预期的输出。更换这条线 b='%s:%s:%s' % (a, date[1], date[2]) 为此: b='%02d:%02d:%02d' % (a, date[1], date[2]) 有将24小时转换为

我对此的输入格式为07:05:09PM 预期产出:

19:05:09
获得的输出:

19:5:9


我的问题是,当我使用map将日期从字符串转换为int时,没有选择零,是否有任何方法可以获得这样的整数???

如果您不想使用自定义函数格式化日期时间,您可以通过在打印时格式化字符串来获得预期的输出。更换这条线

b='%s:%s:%s' % (a, date[1], date[2])
为此:

b='%02d:%02d:%02d' % (a, date[1], date[2])

有将24小时转换为12小时的功能:

通过
strtime()
将字符串加载到datetime对象中,然后通过
strftime()
以所需格式转储:

请注意,
%I
这里是一个12小时的时钟

如果要使用解决方案,可以向整数添加前导零,如:

number=[1,19,255]

numbers=[int({:如果您关心前导零,那么您就不会将数据视为整数。您将数据视为字符序列,根本不应该调用
int
。您的问题不在于
map
,而在于如何格式化字符串。我从这里开始:)
b='%02d:%02d:%02d' % (a, date[1], date[2])
from datetime import datetime
d = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
d  # d is a string '2016-04-28 07:46:32'
datetime.strptime(d, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d %I:%M:%S %p")
'2016-04-28 07:46:32 AM'
numbers = [1, 19, 255]
numbers = [int('{:<03}'.format(number)) for number in numbers]