我想知道是否有人可以帮助完成以下任务:当顺序无关紧要时,如何将列表的所有组合拆分为子列表?
假设我有一个包含 4 个项目的列表:
import itertools as it
a = [1, 2, 3, 4]
print(list(it.combinations(a, 2)))
Run Code Online (Sandbox Code Playgroud)
这会给我一个包含 6 个可能对的列表:
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
Run Code Online (Sandbox Code Playgroud)
如何制作(用它?或任何其他方式)一组[1, 2, 3, 4]以任何顺序包含原始序列的列表?因此,对于此示例,它将包含三个子列表:
[(1, 2), (3, 4)]
[(1, 3), (2, 4)]
[(1, 4), (2, 3)]
Run Code Online (Sandbox Code Playgroud)
更新:一个小的澄清:换句话说,当 n 元组中的顺序无关紧要时,我需要获取所有 n 元组集,以便它们的成员包含原始列表的所有人口。因此[(1, 2), (3, 4)]可以,但[(2, 1), (3, 4)]如果我们忽略顺序,则不需要,因为它与第一组相同。
UPDATE2:因此对于长度为 6 的列表和大小为 2 的块,此fun函数应按如下方式工作:
import itertools as it
a = [1, 2, 3, …Run Code Online (Sandbox Code Playgroud) 您是否认为可以使用asyncio在django中每n秒运行一次任务,这样主进程就不会被阻塞?
例如,在控制台中每5分钟打印一次,例如:
import asyncio
from random import randint
async def do_stuff(something, howmany):
for i in range(howmany):
print('We are doing {}'.format(something))
await asyncio.sleep(randint(0, 5))
if __name__ == '__main__':
loop = asyncio.get_event_loop()
work = [
asyncio.ensure_future(do_stuff('something', 5)),
]
loop.run_until_complete(asyncio.gather(*work))
Run Code Online (Sandbox Code Playgroud)
似乎django将在循环运行时停止工作.即使这可以在开发中工作,当网站在像apache或gunicorn这样的东西上线时它会如何表现?
我有一组列表形式的元组:
[(1, 2), (3, 4), (5, 6), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
在这样的顺序中没有必要,它也可以:
[(1, 4), (2, 6), (3, 5), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
这些列表有两个属性:
n(像[1, 2, 3,..n])的范围n 甚至n 大于2
所有值都是唯一的(没有值重复).
所以,让我说我有:
a = [(1, 2), (3, 4), (5, 6), (7, 8)]
Run Code Online (Sandbox Code Playgroud)
创建元组列表的方法是什么b,a这样就不会有原始元组?
所以例如
b = [(1, 8), (3, 7), (2, 6), (4, 5)]
Run Code Online (Sandbox Code Playgroud)
没事,但是
b = [(1, 2), (3, 7), (5, 6), (4, 8)]
Run Code Online (Sandbox Code Playgroud)
不好,因为它包含(1, 2)并(5, 6)呈现在a
PS :( 标题很乱,但我不知道怎么解释得更好(很乐意编辑).