python,我想在for循环中使用函数

2024-04-25 05:52:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在for循环(in list)中使用sub_code_stop

sub_change = [[0, '150', 'aaa'], [0, '151', 'ccc'],
              [0, '152', 'bbb'], [0, '152', 'ddd']]


def sub_code_stop(a):
    for cc in sub_change:
        if a == cc[1]:
            return cc[2]
        else:
            return 0


lis = [['150', '151'], ['152', '153']]
for i in lis:
    print(sub_code_stop(i[0]))

返回是

aaa
0

我想要

aaa
bbb

Tags: inforreturnifdefcodechangelist
2条回答

将函数更改为:

def sub_code_stop(a):
    for cc in sub_change:
        if a == cc[1]:
            return cc[2]

    return 0

您以前的代码仅与sub_change的第一个元素进行比较。你知道吗


如果sub_change中每个子列表的第二个元素是唯一的,则可以执行以下操作:

sub_change = [[0, '150', 'aaa'], [0, '151', 'ccc'],
              [0, '152', 'bbb'], [0, '153', 'ddd']]
sub_dict = {b:c for _,b,c in sub_change}
lis = [['150', '151'], ['152', '153']]
for i in lis:
    print(sub_dict.get(i[0],0))

在当前代码中,如果第一个元素不匹配,则将函数与else部分中的return一起保留。您必须继续循环以测试下一个元素。你知道吗

如果你发现了什么,你就返回相应的值。如果你没有找到任何东西,那么你必须在循环结束后处理它。你知道吗

def sub_code_stop(a):
    for cc in sub_change:
        if a == cc[1]:
            return cc[2]
    return 0

相关问题 更多 >