basketmn 发表于 2021-1-26 13:58:23

总是提示列表索引超出范围

本帖最后由 basketmn 于 2021-1-26 13:59 编辑

def func(n):
    for i in range(len(n)):
      for j in range(i+1,len(n)):
            if n==n:
                n.pop(n)
            
    return n




n=
a=func(n)
print(a)

要求就是删除列表中重复的元素

小甲鱼的铁粉 发表于 2021-1-26 14:34:32

可以直接用强制类型转换,set(n),将n变为集合,就消去了所有的重复元素,再用list变为列表
n=
n = list(set(n))
print(n)

basketmn 发表于 2021-1-26 14:58:44

首先,感谢你回复!
我就是想知道还有没有其他方法

°蓝鲤歌蓝 发表于 2021-1-26 15:01:32

n.pop(n)
这一句会使 n 的长度变小,但是你两个 for 循环的最大长度又不变,所以下标就会超出。

Lamotu 发表于 2021-1-26 15:09:02

def fanc(n):
    x=[]
    for i in range(len(n)):
      if not n in x:
            x.append(n)
    print(x)

试试这个

YunGuo 发表于 2021-1-26 15:14:22

basketmn 发表于 2021-1-26 14:58
首先,感谢你回复!
我就是想知道还有没有其他方法

定义一个新列表,通过判断新列表中有没有该元素,如果没有,则添加到新列表中,否则不做任何操作,最后返回新列表就行。
def func(n):
    new_n = []
    for i in n:
      if i not in new_n:
            new_n.append(i)
    return new_n

n =
a = func(n)
print(a)

basketmn 发表于 2021-1-26 15:37:55

感谢5,6楼的兄弟,你们俩的方法一样,不好意思,最佳只有一个,我只能给回答最快的,再次对六楼的兄弟说句不好意思!
页: [1]
查看完整版本: 总是提示列表索引超出范围