【问题标题】:WAP change the given list in a way such that the elements which are a multiple of 10 get swapped with element in the next locationWAP 以某种方式更改给定列表,使得 10 的倍数的元素与下一个位置的元素交换
【发布时间】:2022-11-19 07:38:29
【问题描述】:

我正面临 IndexError:索引超出范围。互联网搜索没有找到足够方便的答案,所以我集思广益。一些解决方案缺少角落元素。

l1=[]
l2=[]
l3=[]
n=int(input("enter number of elements... "))
for i in range(0,n):
    a=int(input("enter your elements.... "))
    l1.append(a)
print(l1)
for i in range(0,n):
    if l1[i]%10==0:
        l1[i],l1[i+1]=l1[i+1],l1[i]
print(l1)

【问题讨论】:

  • 您上面提到的脚本运行成功,没有任何错误,请参阅here

标签: python python-3.x list


【解决方案1】:

range(0,n) 从 0 到 n-1 开始,当您下一个尝试获取的元素列表末尾时,它会引发。

假设 n 为 8,现在对于列表中的最后一个元素,如果条件 l1[i]%10==0 返回 true,您将把第 8 个元素与第 9 个元素(不存在)交换

我不知道你在做什么,但也许你应该像这样在你的 if 子句中添加一个额外的条件:

l1=[]
l2=[]
l3=[]
n=int(input("enter number of elements... "))
for i in range(0,n):
    a=int(input("enter your elements.... "))
    l1.append(a)
print(l1)
for i in range(0,n):
    if (l1[i]%10==0) and (len(l1) != (i+1))::
        l1[i],l1[i+1]=l1[i+1],l1[i]
print(l1)

【讨论】:

  • thx 寻求帮助,但问题是我该如何解决它?我应该更改什么以使我的代码正常工作。
  • 我编辑了我的回复并添加了完整的 sn-p,正如我已经提到的,您需要更改 if 条件以防止错误。
猜你喜欢
  • 2018-11-06
  • 1970-01-01
  • 2023-01-18
  • 2011-08-09
  • 2018-02-24
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-24
相关资源
最近更新 更多