我有一个这样的清单:
nList = [[0,0,0],[3,2,1]],\ [[]],\ [[100,1000,110]],\ [[0,0,0],[300,400,300],[300,400,720],[0,0,120],[100,0,1320],[30,500,1450]]
并且需要以这样的方式存储输出,以便在'\'之前的每个变量都出现,例如,在第一个'\'之前:
0 metres, 0 metres, 0 seconds
3 metres, 2 metres, 1 seconds
到目前为止,我已经为每个'\'之前的单个索引提出了这个问题,例如nList[4]
:
outputList = []
for distance in nList[4]:
outputLlist.append('{} metres, {} metres, {} seconds'.format(*distance))
但是如何创建一个迭代所有for
索引的nList
循环,并将输出格式'x' metres, 'y' metres, 't' seconds
存储在空列表outputList
中?
感谢您的帮助。
答案 0 :(得分:2)
for i in range(1,len(nList)):
for distance in nList[i]:
outputLlist.append('{} metres, {} metres, {} seconds'.format(*distance))
我认为这会做你所要求的。
答案 1 :(得分:2)
因此,您的数据结构是列表列表的元组。 你需要两个循环。
outputList = []
for i in nList:
for distance in i:
outputList.append('{} metres, {} metres, {} seconds'.format(*distance))
但你也可以使用列表理解:
outputList = ['{} metres, {} metres, {} seconds'.format(*distance))
for i in nList for distance in i]
答案 2 :(得分:1)
迭代列表中的每个子列表,并在输出之前检查每个元素是否有3个或更多条目:
nList = [[0,0,0],[3,2,1]], [[]], [[100,1000,110]], [[0,0,0],[300,400,300],[300,400,720],[0,0,120],[100,0,1320],[30,500,1450]]
outputList = []
for subList in nList:
for distance in subList:
if len(distance) >= 3:
outputList.append('{} metres, {} metres, {} seconds'.format(*distance))