【问题标题】:How to check if an object produced by zip() is empty? [duplicate]如何检查 zip() 生成的对象是否为空? [复制]
【发布时间】:2019-11-18 22:09:57
【问题描述】:

如果我有这样的列表:

transactions = ['001','002','003']
transaction_dates = ['01-01-2019','01-02-2019','01-03-2019']
transaction_amounts = ['27.00','35.00','36.00']

我像这样使用 zip

results = zip(transactions,transaction_dates,transaction_amounts)

如何判断results 是否为空?

【问题讨论】:

  • results 在这种情况下永远不会为空。 results 可以为“空”的唯一情况(在引号中,因为它永远不会是“空”,而是一个空生成器)是如果至少有一个列表是空的。
  • 给我们示例数据,让results 为空?

标签: python


【解决方案1】:

对于这个特定任务,我建议定义一个函数并调用 zip 返回的迭代器的 next 方法,并用 try/expect 包裹以捕获 StopIteration 警告:

def is_empty(i):
    try:
        next(i)
        return False
    except StopIteration:
        return True

transactions = ['001','002','003']
transaction_dates = ['01-01-2019','01-02-2019','01-03-2019']
transaction_amounts = ['27.00','35.00','36.00']

is_empty(zip(transactions,transaction_dates,transaction_amounts))
# False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2018-11-08
    相关资源
    最近更新 更多