Python 我试图交换列表中的两个元素,但在第一次交换之后,它会不断被交换,因为它符合要交换的条件
用python编写一个包含以下元素的列表num:num=[3,21,5,6,14,8,14,3]。编写一个程序,将内容与可被7整除的下一个值交换,使结果列表如下所示:num=[3,5,21,6,8,14,3,14] 这是我的密码Python 我试图交换列表中的两个元素,但在第一次交换之后,它会不断被交换,因为它符合要交换的条件,python,python-3.x,Python,Python 3.x,用python编写一个包含以下元素的列表num:num=[3,21,5,6,14,8,14,3]。编写一个程序,将内容与可被7整除的下一个值交换,使结果列表如下所示:num=[3,5,21,6,8,14,3,14] 这是我的密码 num = [3, 21, 5, 6, 14, 8, 14, 3] for i in range(len(num)-1): if num[i] % 7 == 0: num[i + 1], num[i] = num[i], num[i + 1] p
num = [3, 21, 5, 6, 14, 8, 14, 3]
for i in range(len(num)-1):
if num[i] % 7 == 0:
num[i + 1], num[i] = num[i], num[i + 1]
print(num)
输出
[3,5,6,14,8,14,3,21]
在第一次交换之后,if语句一次又一次地检查21,与所需的输出相反,它被推到列表的末尾。我还必须检查其他可被7整除的元素,并将它们与后续元素交换。
每次交换后是否可以跳过一次迭代?您可以通过如下方式分配值来交换值:
a, b = b, a
您可以使用for循环轻松完成此练习,每次检查下一个数字是否可以被7整除,如果可以,请使用此代码交换它们那么您尝试了什么?请不要要求完整的代码。当你被困在某个地方时,展示你的尝试并寻求帮助。他甚至没有要求完整的代码。只是陈述一个问题。这么低的工作量。@ChristianSloper,不管怎么说,它是重复的:……使用调试器来逐步检查代码。这不是问题的答案。@MayankPorwal为什么?它并没有确切地说明如何使用它,但这基本上是asnwer…这似乎更像是一个建议/评论,而不是一个答案。在我看来,当你回复某人的帖子时,至少要彻底解决这个问题。不要只是提建议。有这样的注释。如果我做这种交换,它会显示一个索引错误。在这一行中。。。num[i+1],num[i]=num[i],num[i+1]索引器:列表索引超出范围
num = [3, 21, 5, 6, 14, 8, 14, 3]
num.reverse()
for i in range(len(num)-1):
if num[i] % 7 == 0:
num[i - 1], num[i] = num[i], num[i - 1]
num.reverse()
print("The required answer :", num)