我想把所有的头文件收集到一个子目录列表中。但是,如果我这样做了
from glob import glob
from itertools import chain
subDirs = ['FreeRTOS', 'Twig']
for each in chain(glob(eachDir+'/*.h') for eachDir in subDirs):
print each
我得到的是
['FreeRTOS/croutine.h', 'FreeRTOS/FreeRTOS.h', 'FreeRTOS/FreeRTOSConfig.h', 'FreeRTOS/list.h', 'FreeRTOS/mpu_wrappers.h', 'FreeRTOS/portable.h', 'FreeRTOS/portmacro.h', 'FreeRTOS/projdefs.h', 'FreeRTOS/queue.h', 'FreeRTOS/semphr.h', 'FreeRTOS/StackMacros.h', 'FreeRTOS/task.h', 'FreeRTOS/timers.h']
['Twig/twig.h']
但我想看到的是
'FreeRTOS/croutine.h'
'FreeRTOS/FreeRTOS.h'
'FreeRTOS/FreeRTOSConfig.h'
'FreeRTOS/list.h'
'FreeRTOS/mpu_wrappers.h'
'FreeRTOS/portable.h'
'FreeRTOS/portmacro.h'
'FreeRTOS/projdefs.h'
'FreeRTOS/queue.h'
'FreeRTOS/semphr.h'
'FreeRTOS/StackMacros.h'
'FreeRTOS/task.h'
'FreeRTOS/timers.h'
'Twig/twig.h'
我以为这就是链子()对我的作用。我错过了什么?你知道吗
我想你在找itertools.chain.from_iterable:
它压平了一堆难以忍受的东西:
可能比unutbu的答案慢,但这也会起作用:
请注意,与unutbu的回答相比,这会使列表中的列表数量变平,而不是他的方法。示例:
和联合国大学的答案一样。你知道吗
以下是与unutbu版本的速度比较:
还可以查看:
Making a flat list out of list of lists in Python
它被标记为复制,尽管它还有一些其他的实体链接。;)
相关问题 更多 >
编程相关推荐