将 numpy.str 与包含单个字符串的集合进行比较

Comparing numpy.str to set that contains a single string

我有以下字符串:

label1: 'Yes'(numpy 字符串)

label2: 'Yes'(仅包含一个字符串的集合)

当我尝试进行比较时 label1 == label2 我得到一个错误,因为 label2 是一个集合,而不是一个字符串。

当我尝试进行比较时 label1 == label2[0] 我得到一个错误,因为“集合不可订阅”。

谁能帮我看看我错过了什么?

您缺少的是您为您的功能选择了不合适的数据类型。 set是无序集合;试图从中获取特定元素不符合 set 概念。

你有几个sort-of-reasonable选择。

if label1 in label2:

if label1 == list(label2)[0]:

Sets 是 un-ordered 数据结构,这意味着您可以在任何索引处获取值 i,这仅是 有序的原因 结构可以被索引。在 set 中,顺序每次都不一样,因此在特定元素上索引值每次都会给出不同的结果,这是毫无意义的(这就是为什么不允许这样做的原因)

如果你想让我让它工作,有很多方法。

如果您只有一个值:

if label1 == list(label2)[0]:
    # Your code

if label1 == label2.pop():
    # Your code

如果您有多个值:

if label1 == sorted(list(label2))[INDEX_OF_YOUR_VALUE]:
    # Your code