from workalendar.core import Calendar
from workalendar.registry import registry
CalendarClass = registry.get('US')
calendar = CalendarClass()
# Get the range of years
start_year = 2018
end_year = 2020
all_years = range(start_year, end_year + 1, 1)
# Get the holidays for each of the years
holiday_list = list()
for yearr in all_years:
holiday_list.append(calendar.holidays(yearr))
holiday_list截断输出:
[[(datetime.date(2019, 1, 1), 'New year'),
(datetime.date(2019, 4, 19), 'Good Friday'),
...
(datetime.date(2019, 12, 26), 'Boxing Day')],
[(datetime.date(2020, 1, 1), 'New year'),
(datetime.date(2020, 4, 10), 'Good Friday'),
...
(datetime.date(2020, 12, 26), 'Boxing Day')],
[(datetime.date(2021, 1, 1), 'New year'),
(datetime.date(2021, 4, 2), 'Good Friday'),
...
(datetime.date(2021, 12, 25), 'Christmas Day'),
(datetime.date(2021, 12, 26), 'Boxing Day')]]所以你可以在这里看到它是一个列表中的三个元组列表。在网上搜索时,我不断地得到不会将内部元组转换为列表的结果,或者仍然返回三个列表,或者返回三层列表等等。我如何才能得到一个列表列表,其中包含日期和假日名称?
编辑:想要的结果会是什么样子?
[[datetime.date(2019, 1, 1), 'New Year'],
[datetime.date(2019, 4, 19), 'Good Friday'],
...
[datetime.date(2020, 12, 26), 'Boxing Day'],
[datetime.date(2021, 1, 1), 'New year'],
...
[datetime.date(2021, 12, 25), 'Christmas Day'],
[datetime.date(2021, 12, 26), 'Boxing Day']]发布于 2022-05-19 09:54:40
我是这样做的:
final_list = []
for inner_list in your_list: final_list += [list(inner_tuple) for inner_tuple in inner_list] 得到这个输出:
[[datetime.date(2019, 1, 1), 'New year'],
[datetime.date(2019, 4, 19), 'Good Friday'],
[datetime.date(2019, 12, 26), 'Boxing Day'],
[datetime.date(2020, 1, 1), 'New year'],
[datetime.date(2020, 4, 10), 'Good Friday'],
[datetime.date(2020, 12, 26), 'Boxing Day'],
[datetime.date(2021, 1, 1), 'New year'],
[datetime.date(2021, 4, 2), 'Good Friday'],
[datetime.date(2021, 12, 25), 'Christmas Day'],
[datetime.date(2021, 12, 26), 'Boxing Day']]希望能帮上忙。
发布于 2022-05-19 09:57:18
如果要将最内部的元组转换为列表,同时保留它们的内容,则可以迭代holiday_list元素的元素,并分别转换它们:
out = [[list(inner_tuple) for inner_tuple in sublist] for sublist in holiday_list]如果您想要将列表进一步简化,请将两个列表理解合并为一个:
out = [list(inner_tuple) for sublist in holiday_list for inner_tuple in sublist]原则上,list(inner_tuple)将inner_tuple从tuple类型转换为list类型。这发生在每一个for inner_tuple in sublist上。在第一种情况下,结果被额外地包装到一个列表本身中(内部[])。我们对所有sublist in holiday_list重复此操作,并将其保存为一个列表(外部[])。请注意,在第二种情况下,for语句的顺序是相反的。
https://stackoverflow.com/questions/72302288
复制相似问题