【问题标题】:List of Tuples remove error元组列表删除错误
【发布时间】:2016-11-09 17:15:52
【问题描述】:

ExpenseL 是我的元组列表,我尝试从 startstop 的列表中删除,但我只是收到此错误:in removeFromAtoB 费用L.pop(i) TypeError: 'tuple' 对象不能被解释为整数 请帮我!!! :)

def removeFromAtoB():
    aux = copy.deepcopy(expenseL)
    print(expenseL, "\n")
    start = int(input("Starting point: "))
    stop = int(input("Ending point: "))
    j = 0
    for i in expenseL:
        if j >= start and j <= stop:
            expenseL.pop(i)
        j += 1
    print(expenseL)

【问题讨论】:

    标签: list python-3.x tuples


    【解决方案1】:

    您正在迭代您的元组列表:

    for i in expenseL
    

    这意味着i 将是这些元组之一。然后你尝试在list.pop中使用它:

    expenseL.pop(i)
    

    这不起作用,因为list.pop 需要一个索引。列举你的清单:

    for index, tpl in enumerate(expenseL):
        ...
        expenseL.pop(index)
    

    但这也会中断,因为删除元素时索引会发生变化。在这种情况下,您可以通过 not 增加 j 来规避这种情况,但更简单的方法是将一个空列表分配给切片:

    def removeFromAtoB():
        start = int(input("Starting point: "))
        stop = int(input("Ending point: "))
        expenseL[start:stop+1] = []
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2017-09-21
      相关资源
      最近更新 更多