Python如何用当前年份减去出生日期列表的出生年份存入age列表
问题分析
你的现有代码存在两处需要调整的逻辑:
- 切片得到的
x[7:11]已经是完整的年份字符串(例如1990),不需要再调用split("-")拆分 - 提取的年份是字符串类型,必须转为整数才能和数值类型的当前年份做减法运算
调整后完整代码
dob_list = ['01-Jan-1990', '11-Aug-1995', '15-Apr-1982', '20-Mar-1988', '25-Nov-1976', '07-Dec-1965', '18-Dec-1977', '25-May-1994', '09-Oct-1981', '19-Feb-1981'] year = 2021 age = [] for x in dob_list: # 提取年份并转为整数 birth_year = int(x[7:11]) # 计算年龄存入列表 age.append(year - birth_year) print(age)
运行后输出的age列表结果为:[31, 26, 39, 33, 45, 56, 44, 27, 40, 40]
可选优化方案
如果需要适配更多不同格式的日-月-年日期,避免固定切片长度出错,可以改为按分隔符拆分取最后一段作为出生年份:
for x in dob_list: birth_year = int(x.split('-')[-1]) age.append(year - birth_year)
内容的提问来源于stack exchange,提问作者pot
相关产品推荐
相关产品推荐

