问题描述
我有以下字符串:
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