在两个日期字符串之间搜索元组

2024-10-02 22:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想列出两个日期(字符串)之间的元组中的值,我的数据如下所示:

[(1, 'ch-01-07-1', '2021-07-01', '262', 'okinama', 'OR15G9431', 'Dhenkanal', 'FULAPADA', '67', '450', '34', '395151.0', 'Not Yet'),
 (3, 'ch-01-07-3', '2021-07-02', '262', 'okinama', 'OR 21 7911', 'Dhenkanal', 'FULAPADA', '67', '450', '34', '395151.0', 'Not Yet'),
 (4, 'ch-01-07-4', '2021-07-01', '262', 'okinama', 'OR 21 7911', 'Dhenkanal', 'DIGHI', '67', '450', '34', '299743.0', 'Not Yet'),
 (5, 'ch-01-07-5', '2021-07-03', '262', 'okinama', 'OR 21 7911', 'Dhenkanal', 'CUTTACK', '67', '450', '34', '384163.0', 'Not Yet'),
 (6, 'ch-01-07-6', '2021-07-04', '262', 'okinama', 'OR 21 7911', 'Dhenkanal', 'BARSINGHA (BARAMBA)', '67', '450', '34', '356425.0', 'Not Yet'),
 (7, 'ch-18-07-1', '2021-07-12', '256', 'ultra tech', 'OR 21 7911', 'Dhenkanal', 'DERA', '52', '63', '21', '340672.0', 'Not Yet'),
 (8, 'ch-18-07-2', '2021-07-11', '457', 'ultra tech', 'OR15G9431', 'Dhenkanal', 'DHENKANAL TOWN AREA (M.PAT, COLLEGE BYEPASS)', '45', '5677', '66', '88082.0', 'Not Yet'),
 (9, 'ch-18-07-3', '2021-07-15', '545', 'okinama', 'OR 21 7911', 'Dhenkanal', 'FULAPADA', '67', '66', '55', '395514.0', 'Not Yet'),
 (10, 'ch-18-07-4', '2021-07-09', '545', 'ultra tech', 'OR 21 7911', 'Dhenkanal', 'FULAPADA', '67', '66', '55', '395514.0', 'Not Yet'),
 (12, 'ch-01-07-2', '2021-07-08', '123', 'ultra tech', 'OR 21 7911', 'Dhenkanal', 'DHUBALAPALA (TELKOI)', '23', '23', '12', '287534.0', 'Not Yet'),
 (17, 'ch-2021-07-1', '2021-07-12', '565', 'ultra tech', 'OR 21 7911', 'Dhenkanal', 'DHENKANAL TOWN AREA (UPTO MAHAVEER BAZAR) ', '32', '33', '22', '61289.0', 'Not Yet'),
 (19, 'ch-2021-07-2022', '2021-07-18', '741', 'okinama', 'OR 21 7911', 'Dhenkanal', 'FULAPADA', '21', '22', '22', '123961.0', 'Not Yet'),
 (20, 'ch-2021-07-2023', '2021-07-19', '693', 'ultra tech', 'od062598', 'Dhenkanal', 'DUDURKOTE', '78', '78', '78', '352014.0', 'Not Yet'),
 (21, 'ch-2021-07-2024', '2021-07-20', '123', 'okinama', 'OR 21 7911', 'Dhenkanal', 'CUTTACK', '10', '100', '100', '57210.0', 'Not Yet')]

例如,我希望搜索介于“2021-07-03”和“2021-07-15”之间的日期,因此我希望在控制台中列出5、6、7、8、9、10、12、17行,如果列号为[5],其中值等于“ultra tech”,则列出7、8、10、12、17行


Tags: or字符串notareachtechyetultra
2条回答

您可以通过这种方式将日期转换为整数

cr_date = "2021-07-03"
cr_date = list(map(int, cr_date.split('-')))
start_date = 10000 * cr_date[0] + 100 * cr_date[1] + cr_date[2]

然后查询:

find_value = 'ultra tech'


for t in data:
    cr_date = list(map(int, str(list(t)[2]).split('-')))
    find_date = to_int(cr_date)
    if end_date >= find_date >= start_date:
        search_result.append(t)
        if find_value in t:
            adv_search.append(t)

从日期时间导入日期时间 起始日期时间导入日期 d1=日期(2021,7,3) d2=日期(2021,7,15) 对于A中的b: 如果(b[4]=“ultra tech”): c=datetime.strtime(b[2],%Y-%m-%d”).date() 印刷品(c) 如果(d1<;c<;d2): 印刷品(b)

相关问题 更多 >