当前位置: 首页 > 知识库问答 >
问题:

Python如何检查字符串是否是字符串列表的元素[重复]

郎曾笑
2023-03-14

在python中,如何检查字符串是否是字符串列表中的元素?

我正在处理的示例数据是:

testData=pd.DataFrame({'value':['abc','cde','fgh']})

那么为什么下面代码的结果是"False":

testData['value'][0] in testData['value']

共有1个答案

徐旻
2023-03-14

您可以使用矢量化的str.contains测试每行中是否存在/包含字符串:

In [262]:
testData['value'].str.contains(testData['value'][0])

Out[262]:
0     True
1    False
2    False
Name: value, dtype: bool

如果您想知道它是否存在于任何行中,请使用any

In [264]:
testData['value'].str.contains(testData['value'][0]).any()

Out[264]:
True

请回答最后一个问题:

In [270]:
testData['value'][0] in testData['value']

Out[270]:
False

这是因为pd.Series.\uuu包含\uuu实现:

def __contains__(self, key):
    """True if the key is in the info axis"""
    return key in self._info_axis

如果我们看看_info_axis实际上是什么:

In [269]:
testData['value']._info_axis

Out[269]:
RangeIndex(start=0, stop=3, step=1)

然后我们可以看到,当我们在testData['value']中执行'abc'时,我们确实在测试'abc'是否实际在索引中,这就是它返回False

例子:

In [271]:
testData=pd.DataFrame({'value':['abc','cde','fgh']}, index=[0, 'turkey',2])
testData

Out[271]:
       value
0        abc
turkey   cde
2        fgh

In [272]:
'turkey' in testData['value']

Out[272]:
True

我们现在可以看到它返回True,因为我们正在测试索引中是否存在“turkey”

 类似资料:
  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 问题内容: 我有这样的事情: 我想知道在Python中(不使用for循环)更优雅的方法是什么?我在想这样的事情(例如从C / C ++开始),但是没有用: 编辑:我有点被迫解释这与下面被标记为潜在重复项的问题有何不同(所以我想它不会关闭)。 区别是,我想检查一个字符串是否是某些字符串列表的一部分,而另一个问题是检查字符串列表中的字符串是否是另一个字符串的子字符串。 相似,但不完全相同,在网上寻求答

  • 问题内容: 我之前已经找到了这个问题的一些答案,但是对于当前的Python版本似乎已经过时了(或者至少它们对我不起作用)。 我想检查子字符串是否包含在字符串列表中。我只需要布尔结果。 我找到了这个解决方案: 我希望从这段代码中得到一个价值。如果单词是“ der”,则输出应为。 但是,结果是一个生成器函数,我找不到找到该值的方法。 任何想法? 问题答案: 您可以导入从的情况下,它是由一些其他的替代:

  • 问题内容: 我有一个购物车,在下拉菜单中显示产品选项,如果它们选择“是”,我想使页面上的其他一些字段可见。 问题是购物车的文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效: 但是我宁愿使用这样的东西,它不起作用: 我只想在所选选项包含单词“是”的情况下执行操作,并且会忽略价格修饰符。 问题答案: 像这样: …或者您可以使用波浪号运算符: 之所以有效,是因为如果根本找不到该字符串,

  • 考虑以下键(under_score)和字段(lowerCamel): 我正在Java中寻找一种有效的方法来检查是否在中,我希望以下返回: 我的代码: 我可以用下划线替换所有小写,但我正在寻找更有效的方法。

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出: