List 如何在Python中以多种方式迭代列表和元组?
我是Python新手。我不会隐瞒这是家庭作业。我想不出一种迭代多个列表的方法 我最初为一个列表(“lst”)编写了下面的代码,它工作得非常好!然后我回去添加其他三个列表,我不知道为什么我不能让它工作 如有任何建议,将不胜感激。如果有任何关于清理和重构的提示,我将不胜感激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),
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