Python 我想删除列表中的x,但告诉我:x不在列表中

Python 我想删除列表中的x,但告诉我:x不在列表中,python,python-3.x,Python,Python 3.x,我想找到列表的最小成员并将其从列表中删除,然后附加到另一个列表中,但在循环中找到该成员后,它不会删除并告诉我:x不在列表中 l=[2,5,6,1,8,9] g=10 a=[] for i in l: if i<g: g=i a.append(g) print(g) l.remove(g) output is: g=1 ValueError: list.remove(x): x not in list 在我无法删除成员后,我尝试按pop删除它,首先我通过循环找

我想找到列表的最小成员并将其从列表中删除,然后附加到另一个列表中,但在循环中找到该成员后,它不会删除并告诉我:x不在列表中

l=[2,5,6,1,8,9]
g=10
a=[]
for i in l:
    if i<g:
        g=i
a.append(g)
print(g)
l.remove(g)



output is:
g=1
ValueError: list.remove(x): x not in list
在我无法删除成员后,我尝试按pop删除它,首先我通过循环找到索引号并尝试按pop删除它,但告诉您:pop索引超出范围

l=[2,4,5,1,4]
g=10
h=m=0
a=[]
while(h<len(l)):
    h=h+1
    for i in l:
        if i<g:
            g=i
    a.append(g)
    for n in l:
        if n!=g:
            m=m+1
        if n==g:
            break
    print(m)
    l.pop(m)
out put is:
3
7
IndexError: pop index out of range
eventhough:l[3]=1

如果使用语句l.removel从列表中删除列表,则应改用l.removeg

Python还有一个内置的最小值函数min

对于第二个示例,在遍历列表时不要对其进行变异

代码:

l=[1,2,3,9,12,5] 普林特 l、 移除 普林特 输出:

[1, 2, 3, 9, 12, 5] [2, 3, 9, 12, 5]
我找到了你的代码的解决方法,我认为这是正确的缩进。它将在列表中存储最小值

l=[2,5,6,1,8,9]
g=10
a=[]
    for i in l:
        if i<g:
            g=i
            a.append(g)
c=a.pop()

这将删除原语的最低值1。在这种情况下,我找到了答案。我必须重新初始化g。现在我们可以在循环中使用此代码

l=[2,5,6,1,8,9]
g=10
a=[]
for i in l:
    if i<g:
        g=i
a.append(g)
l.remove(g)
g=10
在此代码中:在循环中,代码再次将元素与g进行比较。
来源:

l.removel-从列表本身删除列表??为什么不仅仅是l.removeminl?但是,当然,使用@Jmonsky指出的min将是最好的解决方案,因为您不必将变量g的值设置为高于数组中的任何值。此代码有一个错误,即列表的第一个元素是2,并且小于10,因此:追加到另一个列表。但列表的最低成员是1。此代码基于您的代码,通过在每次交互中重置g的值,将最低值追加到列表中。如果在遍历列表l时运行此代码,它将首先将2附加到a,并将g设置为2,现在查找小于2的值,它将仅在i=1时附加到a,这就是它的结尾,a=[2,1]由于最后一个值总是最小的,c=a.pop将返回一个,而l.removec将从列表中删除1。@sajjjadghasemi正如我在上面读到的,您不想使用最小值,您可以先使用最大值设置g,然后使用我建议的迭代,这样,您就不必知道每个列表的值,就可以在它们上面设置g来删除最小值。在我使用的代码中,我知道列表的所有成员都在10以下,我的意思是这些都是从1到9。我想每次都找到最小值,并将其附加到另一个列表中,然后从该列表中删除,以设置一个从最小值开始到最大值介于1:9之间的列表。您的代码是最好的和正确的,但我想编写一个代码来找到最小值,而不是使用:min。
l=[2,5,6,1,8,9]
g=10
a=[]
for i in l:
    if i<g:
        g=i
a.append(g)
l.remove(g)
g=10