我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.
我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.
我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.
我理解函数如何在for循环中使用range()和zip()可以使用.但是我希望range()输出一个列表 - 就像seq在unix shell中一样.如果我运行以下代码:
a=range(10)
print(a)
Run Code Online (Sandbox Code Playgroud)
输出是range(10),表明它不是列表而是不同类型的对象.zip()打印时有类似的行为,输出类似的东西
<zip object at "hexadecimal number">
Run Code Online (Sandbox Code Playgroud)
所以我的问题是它们是什么,有什么优势使它们成为现实,如何在没有循环的情况下将它们的输出发送到列表?
我有一个看起来像这样的元组列表:
[('a', 'b'), ('c', 'd'), (('e', 'f'), ('h', 'i'))]
Run Code Online (Sandbox Code Playgroud)
我想把它变成这个:
[('a', 'b'), ('c', 'd'), ('e', 'f'), ('h', 'i')]
Run Code Online (Sandbox Code Playgroud)
最恐怖的方式是什么?
我正在创建一个python程序.
我有一个清单:
[3, 28, 25, 126, 25, 127]
如何将其转换为元组列表,以便列表变为:
[(3,28),(25,126),(25,127)]
它加入了2个元素并构成了一个元组.
我在使用迭代器从列表到元组时发现了这个问题,但是我正在处理大量数据。
我发现这个问题是从元组到列表的,实际上有很多问题从元组列表到数组,但是我还没有找到如何向另一个方向发展的问题...
我有:
np.arrray([[ 0 1]
[ 1 1]
[ 2 1]
...,
[1004 3]
[1005 1]
[1006 1]])
Run Code Online (Sandbox Code Playgroud)
我想要:
np.arrray([( 0 1)
( 1 1)
( 2 1)
...,
(1004 3)
(1005 1)
(1006 1)])
Run Code Online (Sandbox Code Playgroud)
我不一定需要一堆元组,但是我想高效地做到这一点。
我有两个OrderedDict词典,我想检索两个词典中匹配键的值:
>>> from collections import OrderedDict
>>> d1 = OrderedDict()
>>> d2 = OrderedDict()
>>> d1["A"] = 2
>>> d1["B"] = 3
>>> d1["C"] = 2
>>> d2["D"] = 90
>>> d2["B"] = 11
>>> d2["C"] = 25
>>> # search both dicts and output values where key matches
(3, 11)
(2, 25)
Run Code Online (Sandbox Code Playgroud)