Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从列表中删除元素并在If语句中返回更新后的列表_Python_List_For Loop_If Statement - Fatal编程技术网

Python 如何从列表中删除元素并在If语句中返回更新后的列表

Python 如何从列表中删除元素并在If语句中返回更新后的列表,python,list,for-loop,if-statement,Python,List,For Loop,If Statement,在以下代码中,用户输入N对输入,每次用户输入值2,应删除最近的一对(非整数),并更新列表。假设输入列表是lis=[(1,97),2,(1,20),2,(1,26),(1,20),2]。因此,最终更新的输出应该是lis=[(1,26)]。我的代码将所有对存储在lis中,不删除元素。请注意,我需要修改自己的代码,而不是完全不同的代码 N = int(input()) lis=[] for i in range(N): b = (input().split()) if len(b)==

在以下代码中,用户输入N对输入,每次用户输入值
2
,应删除最近的一对(非整数),并更新列表。假设输入列表是
lis=[(1,97),2,(1,20),2,(1,26),(1,20),2]
。因此,最终更新的输出应该是
lis=[(1,26)]
。我的代码将所有对存储在lis中,不删除元素。请注意,我需要修改自己的代码,而不是完全不同的代码

N = int(input())
lis=[]
for i in range(N):
    b = (input().split())
    if len(b)==2:
        lis.append(b)
    if b == 2:
        del lis[0]       
        lis.append(lis)
试试这个-

N = int(input())
lis=[]
for i in range(N):
    b = (input().split())
    if len(b)==2:
        lis.append(b)
    if b[0] == 2:
        lis.remove(lis[-1])      
remove()
将从列表中删除最后一个元素。在您的情况下,输出将是-

[(1, 26)]           

那么,最近的对不是最后的吗?而且,您应该使用
.pop(index)
删除元素。我觉得在输入另一个值之前不应该添加分割值,或者在输入2时放弃分割值。这样,你就不会删除任何东西是的,我想删除最近的一个。爸爸不为我的案子工作。