打印lis中的每个项目

2024-05-21 04:12:42 发布

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

当我执行附加的代码时,我希望它:

return sub_list

对于主列表中的所有子列表(共9个子列表)。 我该怎么做?你知道吗

            for sub_list in mainList:
            sub_list = sub_list.split(",")
            if len(sub_list) == 9:
                for i in sub_list:
                    try:
                        i = int(i)
                    except ValueError:
                        return "Error! has to contain integers only"
                    else:
                        i = str(i)
                print(sub_list)
            elif len(sub_list) > 9:
                return 'Error! more than 9 numbers in a line'

当我执行代码时,会出现以下情况:

['3', '8', '0', '4', '0', '0', '7', '0', '2']
['0', '0', '0', '7', '2', '0', '0', '0', '0']
['0', '0', '0', '7', '2', '0', '0', '0', '0']
['0', '2', '4', '8', '0', '6', '9', '0', '0']
['0', '0', '0', '0', '0', '0', '0', '0', '0']
['0', '0', '1', '2', '0', '3', '5', '4', '0']
['0', '0', '0', '0', '5', '8', '0', '0', '0']
['9', '0', '3', '0', '0', '4', '0', '2', '8']
['0', '0', '8', '0', '0', '0', '0', '5', '7']
['3', '8', '0', '4', '0', '0', '7', '0', '2']
['0', '0', '0', '7', '2', '0', '0', '0', '0']
['0', '0', '0', '7', '2', '0', '0', '0', '0']
['0', '2', '4', '8', '0', '6', '9', '0', '0']
['0', '0', '0', '0', '0', '0', '0', '0', '0']
['0', '0', '1', '2', '0', '3', '5', '4', '0']
['0', '0', '0', '0', '5', '8', '0', '0', '0']
['9', '0', '3', '0', '0', '4', '0', '2', '8']
['0', '0', '8', '0', '0', '0', '0', '5', '7']

Tags: 代码in列表forlenreturniferror
2条回答

一个问题是i = int(i)。这不会更新列表中的值。 而不是收件人:ing to把它们转换成整数你可以使用列表理解:(我尽量少修改)

for sub_list in mainList:
    sub_list = sub_list.split(",")
    if len(sub_list) == 9:
        try:
            # Create a new list that is printed
            print([int(i) for i in sub_list])
        except ValueError:
            return "Error! has to contain integers only"
    elif len(sub_list) > 9:
        return 'Error! more than 9 numbers in a line'
    else:
        return 'Error! less than 9 numbers in a line'

这样做的缺点是,如果上一个列表中有错误,则将打印该列表之前的所有其他有效列表。如果只想在没有错误的情况下打印它们,则必须将它们保存在(临时)列表中,然后打印或在for循环后返回。你知道吗

试试这个-

for sub_list in mainList:
    if len(sub_list) == 9:
        ans = []
        for num in sub_list:
            ans.append(str(num))
    return ','.join(ans)

相关问题 更多 >