Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 搜索集合_Python - Fatal编程技术网

Python 搜索集合

Python 搜索集合,python,Python,我想在Python中搜索集合中的元素。 如何在最快的时间内获取被搜索元素的索引 集合中的元素不提供索引!我想知道元素的索引。使用列表或元组如果您对索引感兴趣,集合不维护任何顺序 从: 集合是无序集合,不记录元素位置或位置 插入顺序。因此,集合不支持索引, 切片或其他类似序列的行为 或者可能是这样的: In [1]: se=set("foobarspampython") In [2]: se Out[2]: set(['a', 'b', 'f', 'h', 'm', 'n', 'o', 'p',

我想在Python中搜索集合中的元素。 如何在最快的时间内获取被搜索元素的索引


集合中的
元素不提供索引!我想知道元素的索引。

使用
列表
元组
如果您对索引感兴趣,
集合
不维护任何顺序

从:

集合是无序集合,不记录元素位置或位置 插入顺序。因此,集合不支持索引, 切片或其他类似序列的行为

或者可能是这样的:

In [1]: se=set("foobarspampython")

In [2]: se
Out[2]: set(['a', 'b', 'f', 'h', 'm', 'n', 'o', 'p', 'r', 's', 't', 'y'])

In [3]: list(se).index("f")    # in the original string the index is 0,
                               # but list(set) returns something different
Out[3]: 2
Python3.x:

您可以在Python3.x中使用
orderedict()
,并将项目用作dict的键。
dict.keys()
返回python 3.x中的
keysView
,这类似于
set
,您可以对其执行所有set操作

>>> from collections import OrderedDict as od
>>> strs="foobarspampython"
>>> dic=od((x,"") for x in strs)

>>> dic.keys()                      #order is maintained

KeysView(OrderedDict([('f', ''), ('o', ''), ('b', ''), ('a', ''), ('r', ''),
                      ('s', ''), ('p', ''), ('m', ''), ('y', ''), ('t', ''),
                      ('h', ''), ('n', '')]))

>>> list(dic.keys()).index("f")
0
>>> list(dic.keys()).index("b")
2

>>> dic.keys() & {'a','b','c'}    # even set operations work fine on it
{'a', 'b'}

使用
列表
元组
如果您对索引感兴趣,
集合
不维护任何顺序

从:

集合是无序集合,不记录元素位置或位置 插入顺序。因此,集合不支持索引, 切片或其他类似序列的行为

或者可能是这样的:

In [1]: se=set("foobarspampython")

In [2]: se
Out[2]: set(['a', 'b', 'f', 'h', 'm', 'n', 'o', 'p', 'r', 's', 't', 'y'])

In [3]: list(se).index("f")    # in the original string the index is 0,
                               # but list(set) returns something different
Out[3]: 2
Python3.x:

您可以在Python3.x中使用
orderedict()
,并将项目用作dict的键。
dict.keys()
返回python 3.x中的
keysView
,这类似于
set
,您可以对其执行所有set操作

>>> from collections import OrderedDict as od
>>> strs="foobarspampython"
>>> dic=od((x,"") for x in strs)

>>> dic.keys()                      #order is maintained

KeysView(OrderedDict([('f', ''), ('o', ''), ('b', ''), ('a', ''), ('r', ''),
                      ('s', ''), ('p', ''), ('m', ''), ('y', ''), ('t', ''),
                      ('h', ''), ('n', '')]))

>>> list(dic.keys()).index("f")
0
>>> list(dic.keys()).index("b")
2

>>> dic.keys() & {'a','b','c'}    # even set operations work fine on it
{'a', 'b'}

如果您同时需要访问索引和快速查找的功能,那么您应该看看(非标准)。它提供了一个快速列表实现,可以维护顺序,从而允许快速访问。它不会像
集合
那样快,但您将能够检索索引。

如果您需要访问索引和快速查找的能力,您应该查看(非标准)。它提供了一个快速列表实现,可以维护顺序,从而允许快速访问。它不会像
集合
那样快,但您可以检索索引。

集合中的元素没有索引!集合中的元素没有索引!在你展示的内容中,索引是完全随机的@SilentGhost是的,它的顺序完全不可预测。@SilentGhost我认为在Python3.x中可以使用。将项目用作具有空值的键。As
dict.keys()
返回一个
keysView()。
我们可以在其上执行设置操作。
orderedict
被后端口到python2。7@SilentGhost但是
dict.keys()
在Python2.7中返回一个列表,因此我们不能对它执行set操作。而且在您显示的内容中,索引是完全随机的@SilentGhost是的,它的顺序完全不可预测。@SilentGhost我认为在Python3.x中可以使用。将项目用作具有空值的键。As
dict.keys()
返回一个
keysView()。
我们可以在其上执行设置操作。
orderedict
被后端口到python2。7@SilentGhost但是
dict.keys()
在Python2.7中返回一个列表,所以我们不能对它执行set操作。