Python -循环遍历列表并在匹配时将其连接

ubby3x7f  于 2022-11-21  发布在  Python
关注(0)|答案(1)|浏览(471)

我有一个列表的字典。我必须在可能的地方循环连接它们。当连接它们时,我必须把两列加在一起。我可以使用字典或列表。这取决于什么是最简单的/推荐的。
例如:
| 标识符|姓名|日期|价值观|
| - -|- -|- -|- -|
| 一个|旅馆1| 22-11月22日|九十|
| 2个|旅馆2| 22-11月22日|九十|
| 三个|酒店3| 22-11月22日|九十|
| 四个|旅馆1| 23-11月22日|10个|
| 五个|旅馆2| 23-11月22日|六十|
| 六个|酒店3| 23-11月22日|九十|
所以我想遍历这个dict并提供以下结果:

{
    "hotelName": "hotel1",
    "date": "22-11-22",
    "value": "100"
}
{
    "hotelName": "hotel2",
    "date": "22-11-22",
    "value": "150"
}
{
    "hotelName": "hotel3",
    "date": "22-11-22",
    "value": "180"
}

欢迎任何提示指导
我尝试循环遍历列表,但只能输出

{
    "hotelName": "hotel1",
    "date": "22-11-22",
    "value": "90"
}
{
    "hotelName": "hotel2",
    "date": "22-11-22",
    "value": "90"
}
{
    "hotelName": "hotel3",
    "date": "22-11-22",
    "value": "90"
}
{
    "hotelName": "hotel1",
    "date": "23-11-22",
    "value": "10"
}
{
    "hotelName": "hotel2",
    "date": "23-11-22",
    "value": "60"
}
{
    "hotelName": "hotel3",
    "date": "23-11-22",
    "value": "90"
}
cygmwpex

cygmwpex1#

这里是一个尝试在它=)

hotels = {}
for ind,row in df.iterrows():
    hotel = row['name']
    if hotel in hotels:
        hotels[hotel]['value'] += row['value']
        hotels[hotel]['date'].append(row['date'])
    else:
        hotels[hotel] = {
            'value': row['value'],
            'date': [row['date']]
        }
print(hotels)

输出:

{'hotel1': {'value': 100, 'date': ['22.11.2022', '23.11.2022']},
 'hotel2': {'value': 150, 'date': ['22.11.2022', '23.11.2022']},
 'hotel3': {'value': 180, 'date': ['22.11.2022', '23.11.2022']}}

相关问题