【问题标题】:Check if item in list is existing检查列表中的项目是否存在
【发布时间】:2021-09-14 06:06:01
【问题描述】:

我有 UUID 列表 (block_list) 并想检查一个特定的 UUID 是否列在该列表中。

list(block_list)

Out[41]: 
[ ('f779e98c-a541-4ae2-afcb-b0da2e5bee24',),
 ('a005bc7b-c06d-48bf-8259-757d52c70330',),
 ('8af278b1-089e-40e9-a57d-856efe336c26',)]

为什么说我是假的?

块列表中的“8af278b1-089e-40e9-a57d-856efe336c26” 答案:错误

谢谢 罗伯特

【问题讨论】:

  • 因为列表中没有 UUID,所以列表中的元组中有 UUID:即使检索单个数据,SQL 查询也总是返回元组。
  • ('8af278b1-089e-40e9-a57d-856efe336c26',) in [ ('f779e98c-a541-4ae2-afcb-b0da2e5bee24',), ('a005bc7b-c06d-48bf-8259-757d52c70330',), ('8af278b1-089e-40e9-a57d-856efe336c26',)]

标签: python postgresql


【解决方案1】:

您应该在元组中传递一个字符串,不要传递原始字符串来查看它是否在列表中。这是一个简单的函数,它可以通过传递一个原始字符串并将其嵌套在一个带有尾随逗号的元组中来为您完成:

def check_string(string):
    if ((string, ) in my_list):
        return True
    else:
        return False

【讨论】:

    【解决方案2】:

    它为假的原因是因为您正在检查字符串是否在列表中。但是您的列表是元组的列表。所以你必须检查列表中是否有任何特定的元组。

    因此,您需要以下代码:

    ('8af278b1-089e-40e9-a57d-856efe336c26') in block_list
    

    现在输出为真

    【讨论】:

      【解决方案3】:

      因为 '8af278b1-089e-40e9-a57d-856efe336c26' 是一个字符串,但您的列表由元组组成

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 2017-12-21
        • 2013-05-07
        • 1970-01-01
        相关资源
        最近更新 更多