我找到了一个解决方案,但它确实很慢:
def chunks(self,data, SIZE=10000):
for i in xrange(0, len(data), SIZE):
yield dict(data.items()[i:i+SIZE])
Run Code Online (Sandbox Code Playgroud)
没有使用外部模块(numpy等)你有什么想法吗?
我有一个包含一些元素的列表,并希望迭代所有可能的方法将此列表分成两个列表.我的意思是所有组合,所以顺序无关紧要(即元素1和3可以在一个列表中,元素2在另一个列表中).目前我这样做,facs我的初始列表在哪里:
patterns = []
for i in range(2**(len(facs)-1)):
pattern = []
for j in range((len(facs)-1)):
pattern.append(i//(2**j)%2)
patterns.append(pattern)
for pattern in patterns:
l1 = [facs[-1]]
l2 = []
for i in range(len(pattern)):
if pattern[i] == 1:
l1.append(facs[i])
else:
l2.append(facs[i])
Run Code Online (Sandbox Code Playgroud)
所以我基本上创建了一个长度列表,2^(len(facs)-1)并用每个可能的1和0组合填充它.然后我'覆盖'每个模式facs,除了最后一个元素facs总是在l1,因为我会得到每个结果两次,因为我处理两个相同的列表,无论列表是什么l1或l2.
是否有更快更优雅(更短/更pythonic)的方式来做到这一点?
之前只询问过这个问题的一部分([1] [2]),它解释了如何分割numpy数组.我是Python的新手.我有一个包含262144个项目的数组,并希望将它分成长度为512的小数组,单独对它们进行排序并总结它们的前五个值,但我不确定如何超出这一行:
np.array_split(vector, 512)
Run Code Online (Sandbox Code Playgroud)
如何调用和分析每个数组?继续使用numpy数组或者我应该还原并使用字典而不是它是个好主意吗?
我有一个列表作为输入,如下所示:
lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]
Run Code Online (Sandbox Code Playgroud)
每三个元素是一个子组,我想将它们分成子组,如下所示:
lst[0:3] # => [1,10,100]
lst[4:6] # => [2,20,200]
lst[7:9] # => [3,30,300]
Run Code Online (Sandbox Code Playgroud)
这样做的优雅方式是什么?
我只发现这个:Split list into small lists
我当然可以通过代码实现这一点,但是当输入带有更多参数时,这会不足,比如
lst = [1, 10, 100, 2, 20, 200, 3, 30, 300, 4, 40, 400, 5, 50, 500 ...]
Run Code Online (Sandbox Code Playgroud)
我想也许reshape()会是一个好方法?
我需要帮助。请如何将 Python 中的列表分成两个相等的部分并删除一个部分。然后将一部分分配给一个新变量。
例子
list = ['name', 'can', 'she', 'men', 'them', 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
那么如何删除此列表的一半并将一半分配给新变量
new_list = ['name', 'can', 'she', 'men', 'them']
Run Code Online (Sandbox Code Playgroud) python ×5
arrays ×2
combinations ×1
dictionary ×1
django ×1
list ×1
numpy ×1
permutation ×1
python-2.7 ×1
split ×1