2017-05-06 96 views
1

我想创建一个列表,其中只包含从字典中键是老师和值是课程列表的课程的列表。最终目标是只有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循环将返回一个列表的列表,这个问题似乎是与第二个循环。

+0

玩了更多Python中,我明白了循环看着这个为2项,它们是2所列出清单。所以,我需要从这些次要列表中提取数据。目前,我的思考过程是以某种方式实现.split()以将列表分解为单独的项目以进行追加,但我不认为我会解决核心问题,因为真正的字典将具有未知数量的值。 – Dylan

回答

1
for course in full_list: 
    course_list.extend(course) 

两个问题都固定在这里:

  1. append修改,但没有返回,所以你不应该用这样的任务。
  2. extendcourse中的所有元素添加到course_list,而不是将整个列表添加为单个元素。
+1

谢谢,雅利安。在询问之前,我没有尝试使用.extend(),我觉得很愚蠢。再次感谢! – Dylan

2
#use sum to concat values from the dict. 

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