【问题标题】:How to remove a tuple on condition如何根据条件删除元组
【发布时间】:2022-12-18 09:51:17
【问题描述】:

我有 2 个列表:

list1 = ["Alex", "John", "Bill", "Tom", ]

list2 = ["Paid", "Not Paid", "Paid", "Paid"]

我需要加入他们以获得键值对,并删除其中包含“未支付”的那对。

如果我做:

list3 = zip(list1, list2)
print(*list3)

我得到:

('Alex', 'Paid') ('John', 'Not Paid') ('Bill', 'Paid') ('Tom', 'Paid')

现在我需要删除 ('John', 'Not Paid') 值。并将剩下的内容放入解压缩列表中。

我该怎么做,“压缩”方法好吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    代替计算整个结果然后修正它,直接计算所需的对象。

    size = len(list1)
    res = []
    for i in range(size):
        if list2[i] == "Paid":
            res.append( (list1[i], list2[i]) )
    print(res)
    

    在给定 list1 和 list2 的情况下运行此代码,如您的示例所示,输出为

    [('Alex', 'Paid'), ('Bill', 'Paid'), ('Tom', 'Paid')]
    

    注意您没有指定两个列表的维度,但查看您的示例我假设它们具有相同的长度,您还编写了通常用于地图对象(如 Python 中的字典)的键值,但该示例显示了一个列表元组,所以我认为这是想要的结果。

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 2013-04-06
      • 2017-05-09
      • 2019-07-07
      • 2016-12-25
      • 2021-12-14
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多