首页 > 解决方案 > 循环抛出两个列表,我想从每个列表中弹出

问题描述

我有两个清单:

revenue_list_per_day = [3.750525, 3.751132, 3.750959, 3.750447]

day_list = [datetime.date(2021, 4, 20), datetime.date(2021, 4, 21), datetime.date(2021, 4, 22), datetime.date(2021, 4, 23)]

for i in revenue_list_per_day: 
    revenue_list_per_day.pop(0)   
    for n in day_list:
        day_list.pop(0)
        print(i,n)  

输出 =>

3.750525 2021-04-20

3.750525 2021-04-22

3.750959 2021-04-22

预期 =>

3.750525 2021-04-20

3.751132 2021-04-21

3.750959 2021-04-22

3.750447 2021-04-23

你觉得我应该怎么做?

标签: python

解决方案


您可以简单地使用zip()内置函数:

for revenue, date in zip(revenue_list_per_day, day_list):
    print(revenue, date)

就这样 !但如果你喜欢很长的路,这里有一个:

for i in range(len(revenue_list_per_day)):
    print(revenue_list_per_day[i], day_list[i])

尽管它有一个缺点,即如果两个列表(revenue_list_per_day 和 day_list)的长度不同,但它会做同样的事情,终端会抛出错误。

但是,使用该zip()功能,它不会因为:

当最短的输入迭代用完时,迭代器停止。

正如文件所说。


推荐阅读