【问题标题】:Listing values in a dictionary where the values are lists在值是列表的字典中列出值
【发布时间】:2017-05-06 21:22:29
【问题描述】:

我正在尝试创建一个列表,其中仅包含字典中的课程,其中键是教师,值是课程列表。最终目标是拥有 1 个仅作为价值观(或课程)的列表。

示例字典:

v = {'Andrew Chalkley': ['jQuery Basics', 'Node.js Basics'],'Kenneth Love': ['Python Basics', 'Python Collections']}

我目前的功能:

def courses(v):
    full_list = []
    course_list = []
    for key in v.values():
        full_list.append(key)
    for course in full_list:
        course_list = course_list.append(course)
    return course_list

我在 IDLE 中对此进行了测试,第一个 for 循环将返回一个列表列表,问题似乎与第二个 for 循环有关。

【问题讨论】:

  • 在 Python 中更多地使用它,我知道循环将其视为 2 个项目的列表,它们是 2 个子列表。所以,我需要从这些二级列表中提取数据。目前,我的思考过程是以某种方式实现 .split() 以将列表分解为要附加的单独项目,但我认为我不会解决核心问题,因为真正的字典会有未知数量的值。

标签: python


【解决方案1】:
#use sum to concat values from the dict.

sum(v.values(),[])
Out[178]: ['jQuery Basics', 'Node.js Basics', 'Python Basics', 'Python Collections']

【讨论】:

    【解决方案2】:
    for course in full_list:
        course_list.extend(course)
    

    这里修复了两个问题:

    1. append 修改,但不返回任何内容,因此您不应该使用这样的赋值。
    2. extendcourse 中的所有元素添加到 course_list,而不是将整个列表添加为单个元素。

    【讨论】:

    • 谢谢,雅利安。在询问之前,我对不尝试 .extend() 感到很愚蠢。再次感谢!
    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2021-09-14
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    相关资源
    最近更新 更多