【问题标题】:Find the index of a tuple when iterating across the first element of the tuple遍历元组的第一个元素时查找元组的索引
【发布时间】:2020-06-10 22:30:00
【问题描述】:

在遍历元组列表[0]时如何识别元组的索引?

List = [('SPAM', 1.0),('EGGS', 4.2),('SPAM', 4.4),('BACON', 9.0),('COFFEE', 2.3)]

for i,j in List:
    if i == 'SPAM':
        list.remove(???)

print(list)

我尝试使用 Enumerate() 函数,但这似乎也没有给我正确的输出。

List.pop()

不会一直弹出正确的索引。

有人可以帮忙吗?

【问题讨论】:

    标签: python-3.x list tuples iteration


    【解决方案1】:

    枚举确实有效:

    l = [('SPAM', 1.0),('EGGS', 4.2),('SPAM', 4.4),('BACON', 9.0),('COFFEE', 2.3)]
    
    for idx, (i,j) in enumerate(l):
        if i == 'SPAM':
            print("FOUND SPAN at index %d" % idx)
    

    但是,您不应在迭代列表时对其进行变异,而应采用如下过滤方法:

    l_new = [(i, j) for i, j in l if i != 'SPAM']
    
    

    【讨论】:

      【解决方案2】:

      您可以使用del 删除给定索引处的元素:

      List = [('SPAM', 1.0),('EGGS', 4.2),('SPAM', 4.4),('BACON', 9.0),('COFFEE', 2.3)]
      
      for (i, (e1, e2)) in enumerate(List):
          if e1 == 'SPAM':
              del List[i]
      
      print(List) # prints [('EGGS', 4.2), ('BACON', 9.0), ('COFFEE', 2.3)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-23
        • 2012-12-03
        • 1970-01-01
        相关资源
        最近更新 更多