arbitrary_element#
- arbitrary_element(iterable)[source]#
返回
iterable
中的任意一个元素,但不移除该元素。这对于“窥视”集合中的任意元素最为有用,但也可以用于任何列表、字典等。
- Parameters:
- iterable :`abc.collections.Iterable` 实例
任何实现了
__iter__
的对象,例如集合、字典、列表、元组等。
- Returns:
- 由
next(iter(iterable))
得到的结果对象
- 由
- Raises:
- ValueError
如果
iterable
是一个迭代器(因为该函数的当前实现会消耗迭代器中的一个元素)。
Notes
该函数返回的不是 随机 元素。如果
iterable
是有序的,连续调用将返回相同的值:>>> l = [1, 2, 3] >>> nx.utils.arbitrary_element(l) 1 >>> nx.utils.arbitrary_element(l) 1
Examples
从常见的可迭代对象中获取任意元素:
>>> nx.utils.arbitrary_element([1, 2, 3]) # 列表 1 >>> nx.utils.arbitrary_element((1, 2, 3)) # 元组 1 >>> nx.utils.arbitrary_element({1, 2, 3}) # 集合 1 >>> d = {k: v for k, v in zip([1, 2, 3], [3, 2, 1])} >>> nx.utils.arbitrary_element(d) # 字典键 1 >>> nx.utils.arbitrary_element(d.values()) # 字典值 3
str
也是一个可迭代对象:>>> nx.utils.arbitrary_element("hello") 'h'
如果
iterable
是一个迭代器,则会引发ValueError
:>>> iterator = iter([1, 2, 3]) # 迭代器,不是可迭代对象 >>> nx.utils.arbitrary_element(iterator) Traceback (most recent call last): ... ValueError: 无法从迭代器返回任意项