【发布时间】:2013-05-08 21:12:27
【问题描述】:
我有一个任意长度的数字列表列表。
例如:
a = [[3,17,19,4],[4,18,10,1],[11,15,13],[7,9,12,16]]
嵌套的级别被限制在这个深度。
我想找出所有列表的第一个元素来自第一个内部列表,其第二个元素来自第二个内部列表,依此类推,这样这个新列表的元素都在增加。
根据给定的示例,[4, 10, 11, 12] 就是这样一个列表。
我正在苦苦挣扎,我希望解决方案是通用的,与有多少内部列表无关。
如果我保证有四个内部列表,我可以天真地编码:
for w in a[0]:
for x in a[1]:
for y in a[2]:
for z in a[3]:
if w < x < y < z:
print [w,x,y,z]
但如果我添加第五个内部列表,或者删除上面的第四个内部列表,我就不走运了。
无论主列表中有多少个内部列表,如何生成所有单调递增的“子列表”?
【问题讨论】: