List 如何在Python中以多种方式迭代列表和元组?

List 如何在Python中以多种方式迭代列表和元组?,list,loops,tuples,python-3.5,magic-square,List,Loops,Tuples,Python 3.5,Magic Square,我是Python新手。我不会隐瞒这是家庭作业。我想不出一种迭代多个列表的方法 我最初为一个列表(“lst”)编写了下面的代码,它工作得非常好!然后我回去添加其他三个列表,我不知道为什么我不能让它工作 如有任何建议,将不胜感激。如果有任何关于清理和重构的提示,我将不胜感激 result='False' def magic(lst): count=0 #Create a list. if count == 0: lst=[(4,9,2),(3,5,7),

我是Python新手。我不会隐瞒这是家庭作业。我想不出一种迭代多个列表的方法

我最初为一个列表(“lst”)编写了下面的代码,它工作得非常好!然后我回去添加其他三个列表,我不知道为什么我不能让它工作

如有任何建议,将不胜感激。如果有任何关于清理和重构的提示,我将不胜感激

 result='False'

 def magic(lst):
    count=0
    #Create a list.
    if count == 0:
        lst=[(4,9,2),(3,5,7),(8,1,6)]
        count==1
        result='True'
    elif count==1:
        lst=[(2,7,6),(9,5,1),(4,3,8)]
        count==2
        result='True'
    elif count==2:
        lst=[(1,2,3),(4,5,6),(7,8,9)]
        count==3
        result='True'
    else:
        lst=[(4,9,2),(3,5,5),(8,1,6)]
        result='True'
    return result 

    #set condition for magic square and print results
    if is_row(let) and is_col(let) and is_diag(lst):
        print('True')
    else:
        print("False")

#is_row function accepts a list as argument returns true or false       
def is_row(lst):
   if sum(lst[0]) == sum(lst[1]) == sum(lst[2]):
       result_R = True
   else:
       result_R = False
   return result_R

#is_col does the same thing as is_row

def is_col(lst):
    for i in lst:
        #select from the tuples in lst to make columns list
        col1=[i[0] for i in lst]

        col2=[i[1] for i in lst]

        col3=[i[2] for i in lst]

        if sum(col1) == sum(col2) == sum(col3):
            result_C = True
        else:
            result_C = False
        return result_C

def is_diag(lst):
    #unpack all tuples into single list for easier indexing.
    unpack1=[num for element in lst for num in element]
    #Diagonal one slice
    D1=unpack1[0:9:4]
    #reverse list...simpler way of preparing for Diagonal Two
    lst.reverse()
    #unpack the reversed list
    unpack2=[num for element in lst for num in element]
    #Diagonal 2 slice
    D2=unpack2[0:9:4]
    #Condition for sum comparison
    if sum(D1)==sum(D2):
        result_D = True
    else:
        result_D = False
    return result_D

magic(a,b,c,d)

很难说出你在问什么。代码的预期行为是什么?
count
变量应该做什么?你想用语法lst=a[(4,9,2)、(3,5,7)、(8,1,6)]做什么?为什么有两个return语句,然后有更多的代码?等等,等等。我只想在每个列表运行3个支持函数时,打印出正确或错误的结果。如果他们坚持每一个,这是真的。我已经取出了两个返回语句(和“a,b,c,d”)…我的坏(就像我说的,我是新来的…但我真的很喜欢!)。这些列表将打印:True False