arbitrary_element#
- arbitrary_element(iterable)[source]#
返回
iterable
中的一个任意元素,但不将其移除。这对于“查看”集合中的任意元素最有用,但也可用于任何列表、字典等。
- 参数:
- iterable
abc.collections.Iterable
实例 任何实现了
__iter__
的对象,例如 set, dict, list, tuple 等。
- iterable
- 返回值:
- 调用
next(iter(iterable))
返回的对象
- 调用
- 引发:
- ValueError
如果
iterable
是一个迭代器(因为此函数的当前实现会从迭代器中消耗一个元素)。
注意
此函数不返回随机元素。如果
iterable
是有序的,连续调用将返回相同的值>>> l = [1, 2, 3] >>> nx.utils.arbitrary_element(l) 1 >>> nx.utils.arbitrary_element(l) 1
示例
常用 Iterable 对象的任意元素
>>> 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
也是一个 Iterable>>> nx.utils.arbitrary_element("hello") 'h'
如果
iterable
是一个迭代器,则会引发ValueError
>>> 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