比较numpy.str以设置包含单个字符串

问题描述

我有以下字符串:

label1: 'Yes'(numpy字符串)

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

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

当我尝试比较label1 == label2[0]时,出现错误,因为“集合不可下标”。

有人可以帮我看看我在想什么吗?

解决方法

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

您有几种合理的选择。

if label1 in label2:

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

集合是无序的数据结构,这意味着您可以在任何索引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