python - 为什么“in”运算符能识别子字符串而不识别子列表?
问题描述
为什么这是真的:
'bcd' in 'abcde'
但这是错误的:
[2,3,4] in [1,2,3,4,5]
这些陈述在概念上是相同的,不是吗?运算符是否in
对字符串有特殊规则?
解决方案
列表可以包含在列表中。
[[2, 3, 4], 2, 3, 4, 5]
其中一次迭代一个元素的外部列表
[2,3,4] in [[2, 3, 4], 3, 4, 5]
给你一个True
价值
对于这种情况,字符串没有等效项。
您可以通过子类化列表并更改__contains__
@hpaulj 指出的那样创建新类型。
但在开始之前有一些问题?
您希望在其中找到多少次 [2,3,4]?
[[2, 3, 4], 2, 3, 4, 5]
或这个
[[2,3,4], [2],[3],[4],5]
推荐阅读
- ruby-on-rails - rails 6中asset_pack_path和image_pack_tag有什么区别?
- flutter - 如何使用带有迭代器的 ListView
- svn - 我可以恢复失败的 SVN 导出吗?
- entity-framework - 编辑数据库上下文以从相关实体获取名称
- javascript - 有没有办法用 javascript 从 XML 创建两个 html 表?
- visual-studio - F9 button doesnt sets breakpoint, but navigating to some website
- javascript - 我怎样才能重复这个循环的幻灯片,以便在到达最后一个元素时再次播放
- string - 将字符串与指向字符串的指针作为参数传递给函数时,时间复杂度有什么区别?
- python - 打印所有子字符串,不管有多少
- python - 在python中找到最相似的句子