在if循环中打印完整列表而不是可迭代列表

问题描述

我正在创建一个接受关键字的类搜索程序,并通过类的描述元素对其进行搜索

我正在尝试获取result [[]]以返回整个list(r),但仅返回搜索项之后的list(r)的其余部分。我不明白为什么r会因为if语句而改变。

table_row_col是[类别] [描述元素]格式的二维数组,搜索词是字符串。

def search_class(search_term,table_row_col):
    result = [[]]
    row = 0
    for r in table_row_col:
        for c in r:
            if search_term in c:
                result.insert(row,list(r))
                row += 1
    return result

示例结果: 关键字“聚” 结果= [亲自 TR 下午01:40 下午02:55 WNS 506 施密特,J]

然后

[MATH 09001 多项式方程 亲自 TR 下午01:40 下午02:55 WNS 506 施密特,J]

当我将result.insert语句放在if循环之外时,将打印整个类描述

任何帮助将不胜感激。这是我第一次使用python,但我仍在调整for循环。

解决方法

类似的事情应该起作用。我做了一些更改,但是这里没有什么太疯狂了。

def search_class(search_term,table_row_col):
    result = []
    for row in table_row_col:
        if any(search_term in c for c in row):
            result.append(row)
    return result

table_row_col = [["MATH","09023","Polynomial equations","In-person","TR","1:40PM","506 Schmitt JR"],["MATH","Calculus","Blended","1:50pm","704 Gregg]"],"Pressing the keys on a Calculator","Virtual","8:50pm","804 JimmyCarlos]"]]

print(search_class("Calc",table_row_col))

让我知道您有任何问题。如果您实际上是在安排实际课程的时间安排-希望一切顺利!如果没有计算机,那可能会很痛苦!