Skip to main content
 首页 » 编程设计

python之从列表中删除值,只留下唯一值

2025年05月04日16虾米哥

所以,基本上我需要的是编写一个程序,让用户键入一个整数列表,将它们存储在另一个值仅为 1-100 的列表中,并显示结果列表。我的问题是我的程序并没有删除我需要的所有值,我需要从列表中删除 1-100 范围之外的所有值。我的标题没有任何借口,但我不确定如何称呼这个问题。

def inputnumber(): 
    numbers = input('Enter number(s): ').split(',') 
    return [int(i) for i in numbers] 
 
x = inputnumber() 
for i in x: 
    if i > 100 or i < 1: 
        x.remove(i) 
y = list(set(x)) 
print(y) 

我的意思是当我输入数字列表 [5, -10, 22, 133, 16, 0, 103, 100, -60] 时,我得到的结果是 [16, 100, 5, 22, 103] - 103应该离开那里。当我键入 list [5, -10, -15, -20, -60, 103, 108, 10] 时,我得到 [-15, 10, -60, 5, 108] - 我应该得到 [10, 5 ] 仅有的。也许我应该寻找其他功能,而不是“删除”,或者有没有办法删除所有功能?

请您参考如下方法:

改变:

y = list(set(x)) 

收件人:

y = list(set(filter(lambda e: 1 <= e <= 100, x))) 

这在构造集合之前使用 filter 过滤 x

或:

y = list(set([e for e in x if e in range(1, 101)])) 

这使用列表理解来过滤您不感兴趣的值,并使用这些值构造 set。