
python如何同时运行两个循环
用户关注问题
我想在Python代码中执行一个循环内嵌套另一个循环,该如何编写代码?
使用嵌套for循环实现多个循环
在Python中,可以将一个for循环放入另一个for循环的代码块中,这样外层循环每执行一次,内层循环就会完整执行一遍。例如:
for i in range(3):
for j in range(2):
print(f'i={i}, j={j}')
这样可以实现两个循环同时运行,从而遍历两个维度的元素。
我想让两个循环任务并行运行,以提升效率,Python里如何实现?
通过多线程模块创建并行循环
Python中可以使用threading模块创建多个线程,让不同循环在各自线程中执行。示例代码如下:
import threading
def loop1():
for i in range(5):
print('Loop1:', i)
def loop2():
for j in range(5):
print('Loop2:', j)
thread1 = threading.Thread(target=loop1)
thread2 = threading.Thread(target=loop2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
这样两个循环能并发运行,实现同时处理。
两个循环运行时我不希望其中一个阻塞另一个,如何处理?
利用异步编程(asyncio)实现非阻塞循环
asyncio库可以让多个循环异步运行,避免阻塞。示例代码:
import asyncio
async def loop1():
for i in range(5):
print(f'loop1: {i}')
await asyncio.sleep(1)
async def loop2():
for j in range(5):
print(f'loop2: {j}')
await asyncio.sleep(1)
async def main():
await asyncio.gather(loop1(), loop2())
asyncio.run(main())
这样两个循环异步执行,互不阻塞,适合I/O密集型任务。