将 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
我有以下字符串:
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