Python中的索引

Python中的索引,python,arrays,list,methods,Python,Arrays,List,Methods,所以,我这里有一段代码,我正在为一所学校工作 def sem1Sort(semester1, selectionSEM1): for semester1["1"] in semester1: if semester1["1"] in selectionSEM1: print semester1["1"] def main(): selectionSEM1 = ["a", "t", "b", "f", "d", "e"]

所以,我这里有一段代码,我正在为一所学校工作

def sem1Sort(semester1, selectionSEM1):
    for semester1["1"] in semester1:
        if semester1["1"] in selectionSEM1:
             print semester1["1"]

def main():     
    selectionSEM1 = ["a", "t", "b", "f", "d", "e"]

    semester1 = {"1": ['a', 'e', 't', 'x', 'l', 'y'], "2": ['b', 'f', 'h', 'm', 'r', 'd'] ,
    "3": ['a', 'b', 'j', 'k', 'o', 'q', 'u'], "4": ['c', 'l', 't', 'z', 'd', 'f'],
    "5": [], "6": [], "7": [], "8": []}


main()
因此,在sem1Sort()方法中,它应该获取semester1列表,以及人工选择的sem1列表。之后,对于学期[“1”]列表中的每个不同索引,如果它在selectionSEM1中,它应该打印出来,对吗

我想你的问题是“我如何获得学生选课和一学期可用课程中的课程?”。在不更改数据格式化方式的情况下,尝试此筛选方法

def sem1Sort(semester1, selectionSEM1):
    for period in semester1:
        if period == '1':
            for cls in semester1[period]:
                if cls in selectionSEM1:
                     print cls
或者,因为您只检查第一节课

def sem1Sort(semester1, selectionSEM1):
    print '\n'.join([cls for cls in semester1['1'] if cls in selectionSEM1])

我一点也不清楚你在
sem1Sort
中想做什么不是法定代码。你能说明你的预期产出是什么吗?另外,您正在创建的空列表是否与此问题相关?如果没有,您应该删除它们,这样它们就不会分散您示例代码中实际相关的部分。@Blckknght,semester1中的semester1[“1”]的
是法律代码。
“之后,对于学期[“1”]列表中的每个不同索引”
-我在您的代码中找不到任何
学期
。进一步澄清你的问题。@John:啊,你说得对。它不是无效的代码,只是非常愚蠢(它会破坏
semester1[“1”]
)的原始内容。非常感谢您的帮助,它非常有用。既然您可以直接在semester1[“1”]
中为cls执行
,为什么还要循环使用
semester1
,这个答案不会改变他的任何方法签名或格式化数据的方式。通过一些重构,我确信可以得到一个更明智的解决方案。不,没关系。我的观点是,在
semester1
的键上循环只是为了测试您所拉的键是否等于
“1”
,这是愚蠢的。直接插上那把钥匙!