基于子字符串和字典的条件替换?

时间:2019-12-06 16:48:09

标签: python

我正在使用一个包含餐厅订单的数据集,如下面的示例所示(即,所有订单成分都汇总为一个用“-”分隔的字符串)

orders_all = ['soup-steak-cake-riesling', 'salad-chardonnay-fish', 'syrah-salad-steak-cake']

我想将不同的项目提取到独立的列表中,以便于进行数据分析,但是我一直在努力寻找合适的功能。理想情况下,给定以下字典,该脚本将能够遍历订单组件并根据字典返回相应的葡萄酒类型。

wine_dict = {'riesling': 'white', 'chardonnay': 'white', 'syrah': 'red'}

orders_wine = ['white', 'white', 'red']

有什么建议吗? :)

1 个答案:

答案 0 :(得分:0)

您将需要手动进行此操作,这比我根据订购商品的类型所希望的要多,前提是您想做的不仅仅是红酒。但是以下内容将为您提供所需的东西。

orders_wine = []

for order in orders_all:
    temp_list = order.split('-')
    for item in temp_list:
        if item in wine_dict:
            orders_wine.append(wine_dict[item])

这将为您提供一个列表orders_wine,与['white', 'white', 'red']相似

但是,我建议您执行以下操作:

wine_type_orders = {'white':0, 'red':0}

for order in orders_all:
    temp_list = order.split('-')
    for item in temp_list:
        if item in wine_dict:
            wine_type_orders[wine_dict[item]] +=1
            #wine_dict[item] would give red or white which are the keys for wine_type_orders and +=1 would increment the counter