首页 > 解决方案 > 多个变量的理解列表,以便将结果连接成字符串列表

问题描述

我有两个清单。我想连接以获得字符串列表。第一个列表由字符串组成第二个列表由时间戳组成。

我会在一行中将以下内容与理解列表连接起来。

#just for creating something similar to my actual situation
import pandas as pd
quarter=["First Quarter","Second Quarter","Third Quarter","Fourth Quarter"]
quarter_forecast_day=pd.date_range(start="12/15/2020",periods=4)

我想要这样的东西:

str(quarter[x]+'\n'+quarter_forecast[y].strftime("%d/%m/%Y"))

我尝试了什么:

#quarter_label=[str(quarter[x]+'\n'+y.strftime("%d/%m/%Y")) for x,y in [quarter, quarter_forecast_day]]
#too many values to unpack (expected 2)

#quarter_label=[str(quarter[x]+'\n'+y.strftime("%d/%m/%Y")) for x,y in (quarter, quarter_forecast_day)]
#too many values to unpack (expected 2)

#quarter_label=[str(quarter[x]+'\n'+y.strftime("%d/%m/%Y")) for x,y in quarter, quarter_forecast_day]
#invalid sintax

#quarter_label=[lambda x,y:str(quarter[x]+'\n'+y.strftime("%d/%m/%Y") for x,y in [quarter, quarter_forecast]]
#invalid sintax

quarter_label=[lambda x,y:str(quarter[x]+'\n'+y.strftime("%d/%m/%Y") for x,y in (quarter, quarter_forecast)]
#invalid sintax

问之前我读了这个问题这个这个。但我仍在努力寻找合适的方法来应用它。

标签: pythonlist-comprehension

解决方案


尝试使用 zip:

quarter_label = [q+'\n'+qf.strftime("%d/%m/%Y") for q, qf in zip(quarter, quarter_forecast_day)]

>>> print(quarter_label)

['First Quarter\n15/12/2020', 'Second Quarter\n16/12/2020', 'Third Quarter\n17/12/2020', 'Fourth Quarter\n18/12/2020']

推荐阅读