【问题标题】:Trying to loop around a list from with info from a OptionMenu info尝试使用 OptionMenu 信息中的信息循环列表
【发布时间】:2016-11-30 20:10:38
【问题描述】:

尝试使用 OptionMenu 信息中的信息循环列表当我尝试循环时出现错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
    return self.func(*args)
  File "C:\Users\Dominic\Desktop\Homework creator\The accuall program.py", line 79, in create_button
    selecting_qs()
  File "C:\Users\Dominic\Desktop\Homework creator\The accuall program.py", line 88, in selecting_qs
    if dif == main_list[n][1]:
TypeError: list indices must be integers, not list

我的列表由数字和字母组成,所以我不确定我的选项菜单必须是整数还是字符串才能在我的列表中搜索特定部分。 这是代码:

def selecting_qs():
    main_list =  main_file_info()
    dif = difficulty.get()
    for n in main_list:
        if dif == main_list[n][1]:
            print(main_list[n][1])



#delating empty strings and /n from list
def rm(list_):
    return [x for x in list_ if x != '\n' and x != ' ']

#main list order:
#Question ID  ,  Difficulty  ,  Topic  ,  Answer ID  ,  Picture ID  ,  Frequency 
def main_file_info():
    main_list=[]
    main_file = open("main_file.txt","r")
    main_file_info=main_file.readlines()
    for line in main_file_info:
        main_list.append(rm(line.split("@")))
    main_file.close()
    return(main_list)

【问题讨论】:

    标签: python list loops variables tkinter


    【解决方案1】:

    您将使用 for n in main_list 获取项目列表,并将结果用作同一列表中的索引。如果列表中的项目是字符串或列表,则会出现错误。尝试使用以下代码:

    def selecting_qs():
        main_list =  main_file_info()
        dif = difficulty.get()
        resp = []
        for n in main_list:
            if dif == n[1]:
                resp.append(n[1])
        return resp
    

    【讨论】:

    • 非常感谢,是否可以将列表中与 diff 匹配的每个对象放在单独的列表中?
    • 是的。只需在你的函数中创建一个列表,如果是相等的,追加值,最后返回创建的列表。
    猜你喜欢
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2017-02-04
    相关资源
    最近更新 更多