arbitrary_element#

arbitrary_element(iterable)[源代码]#

返回的任意元素 iterable 而不是把它取下来。

这对于“窥探”集合中的任意元素最为有用,但也可以用于任何列表、词典等。

参数
iterableAbc.集合。可迭代实例

实现以下功能的任何对象 __iter__ 例如集合、字典、列表、元组等。

返回
产生的对象 next(iter(iterable))
加薪
ValueError

如果 iterable 是迭代器(因为该函数的当前实现将使用迭代器中的元素)。

笔记

此函数不返回 随机 元素。如果 iterable 则顺序调用将返回相同的值::

>>> l = [1, 2, 3]
>>> nx.utils.arbitrary_element(l)
1
>>> nx.utils.arbitrary_element(l)
1

实例

来自常见可迭代对象的任意元素:

>>> nx.utils.arbitrary_element([1, 2, 3])  # list
1
>>> nx.utils.arbitrary_element((1, 2, 3))  # tuple
1
>>> nx.utils.arbitrary_element({1, 2, 3})  # set
1
>>> d = {k: v for k, v in zip([1, 2, 3], [3, 2, 1])}
>>> nx.utils.arbitrary_element(d)  # dict_keys
1
>>> nx.utils.arbitrary_element(d.values())   # dict values
3

str is also an Iterable:

>>> nx.utils.arbitrary_element("hello")
'h'

ValueError is raised if iterable is an iterator:

>>> iterator = iter([1, 2, 3])  # Iterator, *not* Iterable
>>> nx.utils.arbitrary_element(iterator)
Traceback (most recent call last):
    ...
ValueError: cannot return an arbitrary item from an iterator