首页 > 解决方案 > 如何修复for循环以便打印每个段?

问题描述

而不是我的代码在单独的行上打印列表中的每个元素,只打印第一个元素。(1、3、4)。for 循环在函数中似乎不起作用,但当不在函数中时,它工作正常,为什么会这样,我该如何解决?

item_1 = [1, 2, 3]
item_2 = [1, 3, 4]
item_3 = [2]
item_4 = [3, 4]
item_5 = [5]

def recommend(item):
    item_list = [item_1, item_2, item_3, item_4, item_5]
    item_list.remove(item)
    for items in item_list:
        return(items)

print(recommend(item_1))

标签: python

解决方案


你不应该循环返回。

“在循环内使用 return 会破坏它并退出函数,即使迭代仍未完成。” https://stackoverflow.com/a/44564729/13105480

相反,您可以循环打印。

item_1 = [1, 2, 3]
item_2 = [1, 3, 4]
item_3 = [2]
item_4 = [3, 4]
item_5 = [5]

def recommend(item):
    item_list = [item_1, item_2, item_3, item_4, item_5]
    item_list.remove(item)
    for items in item_list:
        print(items)
    # return(items)

recommend(item_1)

推荐阅读