我有一个list和list of list这样的
>>> list2 = [["1","2","3","4"],["5","6","7","8"],["9","10","11","12"]]
>>> list1 = ["a","b","c"]
Run Code Online (Sandbox Code Playgroud)
我压缩了上面的两个列表,以便我可以通过索引匹配它们的值索引.
>>> mylist = zip(list1,list2)
>>> mylist
[('a', ['1', '2', '3', '4']), ('b', ['5', '6', '7', '8']), ('c', ['9', '10', '11', '12'])]
Run Code Online (Sandbox Code Playgroud)
现在我尝试打印上面的输出mylist使用
>>> for item in mylist:
... print item[0]
... print "---".join(item[1])
...
Run Code Online (Sandbox Code Playgroud)
它产生了这个输出,这是我的desired output.
a
1---2---3---4
b
5---6---7---8
c
9---10---11---12
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是有更多的cleaner and better方法来实现我想要的输出或这是best(short and more readable)可能的方式.
好吧,你可以避免一些临时变量并使用更好的循环:
for label, vals in zip(list1, list2):
print label
print '---'.join(vals)
Run Code Online (Sandbox Code Playgroud)
不过,我认为你不会从根本上获得任何"更好"的东西.
以下for循环将打印和连接操作合并为一行.
for item in zip(list1,list2):
print '{0}\n{1}'.format(item[0],'---'.join(item[1]))
Run Code Online (Sandbox Code Playgroud)