gpt4 book ai didi

python - 有没有更简单的方法从Python中的字符串中减去季度(3个月)?

转载 作者:行者123 更新时间:2023-12-01 00:35:56 24 4
gpt4 key购买 nike

我试图从输入格式为“2002q2”的字符串中减去四分之一,这意味着年份 = 2002 年第 2 季度。

我尝试定义一个函数来完成这项工作,它成功了

def subtract_quarter(s):
y,q = map(int,tuple(s.split('q')))
if q>1:
q = q-1
else:
q=4
y=y-1
return 'q'.join([str(y),str(q)])
subtract_quarter('2000q1')

输出:'1999q4'

但是有没有更简单的方法或Pythonic方法来做到这一点?

最佳答案

我们绝对可以使其更加紧凑并使用任意增量:

def add_quarters(s, dq):
y,q = map(int, s.split('q'))
yq2 = 4*y + q + dq
return '{}q{}'.format(yq2//4, yq2%4)

例如:

>>> add_quarters('2000q4', 1)
'2001q1'
>>> add_quarters('2000q4', 15)
'2004q3'
>>> add_quarters('2000q4', -1)
'2000q3'
>>> add_quarters('2000q4', -5)
'1999q3'

因此,我们可以添加/减去任意数量的四分之一。通过使用 -1 我们减去一个四分之一。

话虽如此,我不确定首先使用字符串是个好主意。最好只使用代表季度数的整数(例如自 2000 年 1 月 1 日起)或 date 对象。通过使用字符串,您会更容易出错,因为字符串可以包含例如 'foo-bar'。通过使用整数,至少值的“格式”不能不正确。

关于python - 有没有更简单的方法从Python中的字符串中减去季度(3个月)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com