Mia L 2022-04-12 15:05 采纳率: 70%
浏览 39
已结题

请问这行字典里的value怎么能把[]去掉呢

怎么能把:

{'mitsuwa': [['rice']],
 '99ranch': [['msg'], ['sambal', 'banana leaf']],
 'costco': [['eggs']]}

改成:

 {'mitsuwa': ['rice'], '99ranch': ['msg', 'sambal', 'banana leaf'], \
'costco': ['eggs']}

我的代码:

def grocery_summary(grocery_purchases):
    """
    I create an empty dictionary, then use setdefault to append keys and values.

    >>> p1 = [{'mitsuwa': ['rice'], '99ranch': ['msg']}, \
{'99ranch': ['sambal', 'banana leaf'], 'costco': ['eggs']}]
    >>> grocery_summary(p1)
    {'mitsuwa': ['rice'], '99ranch': ['msg', 'sambal', 'banana leaf'], \
'costco': ['eggs']}
    >>> p2 = [{'ralphs': ['milk', 'carrot', 'milk'], 'costco': ['carrot']}, \
{'ralphs': ['carrot', 'carrot', 'milk'], 'costco': ['carrot']}]
    >>> grocery_summary(p2)
    {'ralphs': ['milk', 'carrot'], 'costco': ['carrot']}

    # Add at least 3 doctests below here #

    """
    # YOUR CODE GOES HERE #
    keys=[]
    values=[]
    for i in grocery_purchases:
        for e in i:
            keys.append(e)
            values.append(i[e])
            
    dic = {}
    for k in range(len(keys)):
        if keys[k] not in dic:
            dic[keys[k]]=[values[k]]
        elif keys[k] in dic:
            dic[keys[k]].append(values[k])


    return dic
  • 写回答

2条回答 默认 最新

  • 夜半罟霖 2022-04-12 15:25
    关注

    Append()用加法代替就好了:

    def grocery_summary(grocery_purchases):
        """
        I create an empty dictionary, then use setdefault to append keys and values.
        >>> p1 = [{'mitsuwa': ['rice'], '99ranch': ['msg']}, \
    {'99ranch': ['sambal', 'banana leaf'], 'costco': ['eggs']}]
        >>> grocery_summary(p1)
        {'mitsuwa': ['rice'], '99ranch': ['msg', 'sambal', 'banana leaf'], \
    'costco': ['eggs']}
        >>> p2 = [{'ralphs': ['milk', 'carrot', 'milk'], 'costco': ['carrot']}, \
    {'ralphs': ['carrot', 'carrot', 'milk'], 'costco': ['carrot']}]
        >>> grocery_summary(p2)
        {'ralphs': ['milk', 'carrot'], 'costco': ['carrot']}
        # Add at least 3 doctests below here #
     
        """
        # YOUR CODE GOES HERE #
        keys=[]
        values=[]
        for i in grocery_purchases:
            for e in i:
                keys.append(e)
                values.append(i[e])
        dic = {}
        for k in range(len(keys)):
            if keys[k] not in dic:
                dic[keys[k]]=values[k]
            elif keys[k] in dic:
                dic[keys[k]]=dic[keys[k]]+values[k]
        return dic
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加