如何从for循环中的列表中删除元素

时间:2020-09-30 15:55:37

标签: python list for-loop del

有一个列表B=[('r',1),('a',2)],如果列表中有'r',则我需要以下代码,删除1的整数,如果有'a',则将其添加到列表B。在我的代码中,B[1,2],但它应该是[2]

a = int(input())
B=[]
for i in range(a):
    b = (input().split())    
    if b[i][0]==['r']:
       del b[i]
    else:
        B.append( int(b[1]) )

3 个答案:

答案 0 :(得分:1)

function funch(sel)
 {

 var a= $(sel).find("option:selected").text();
 var b= $(sel).val();
 alert('a');
 alert('b');
  }

删除了包含“ r”的数组。因为您已经在元组中,所以只是=='r'。

答案 1 :(得分:1)

问题中bB之间存在混淆,并且由于所有变量都是使用input()初始化的,因此很难确定哪个是哪个。

这是一种可能性:

b = [('r',1),('a',2)]
B = []

for (action, value) in b:
  if action == 'a':
    B.append(value)
  elif action == 'r':
    try:
      B.remove(value)
    except ValueError:
      pass

print(B)
# [2]

See the doc on list.remove(value).

如果这不是您想要的,请澄清您的问题。

答案 2 :(得分:0)

您可以尝试:

b = [('r', 1), ('a', 2)]
B=[j for i,j in b if i !='r']