当前位置:  开发笔记 > 编程语言 > 正文

列表元素没有迭代

如何解决《列表元素没有迭代》经验,为你挑选了2个好方法。

我想知道如何在没有迭代的情况下在列表中查找元素



1> dbr..:

列表的mylist.index("blah")方法将返回项目"blah"的第一次出现的索引:

>>> ["item 1", "blah", "item 3"].index("blah")
1
>>> ["item 1", "item 2", "blah"].index("blah")
2

如果找不到它,它将引发ValueError:

>>> ["item 1", "item 2", "item 3"].index("not found")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: list.index(x): x not in list

您还可以使用in关键字来确定项目是否在列表中(但不是位置):

>>> "not found" in ["item 1", "blah", "item 3"]
False
>>> "item 3" in ["item 1", "blah", "item 3"]
True

正如哈珀谢尔比评论,Python将仍然要在内部循环找项目,但该指数或方法可能稍微比在Python做更快,因为数据结构是用C语言实现.但更重要的是,

"x" in mylist

.. 比... 整洁

found = False
for cur in mylist:
    if cur == "x":
        found = True


这将不得不在封面下进行迭代 - 你无法在没有迭代*的情况下搜索列表*.

2> Stephan202..:

这是一个有点奇怪的问题.您想要热线$someDeity吗,或者您是否希望其他功能为您进行迭代,或者您是否想要一种更有效的方式来测试会员资格?

在第一种情况下,我无法帮助你.在第二种情况下,请查看列表上的文档,特别是index方法.在第三种情况下,创建一个set并使用in关键字.请注意,如果您打算多次搜索列表,则集创建仅会产生回报.

>>> l = [1, 2, 3]
>>> l.index(2)
1
>>> 3 in l
True
>>> ls = set(l)
>>> 3 in ls
True

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有