现在,我使用了以下代码:
>>> index =1>>> for i in l:... if isinstance(i,List):... for j in i :... print index,j... index = index + 1... else:... print index,i... index = index + 1... 1 a2 b3 c4 d5 e6 f7 g
您可以看到我打印出结果的格式.
另一个例子:
l = [['aaa','bbb','xxx'],'ddd']Output = 1 aaa2 bbb3 xxx4 ddd
我的问题是有更好的方法来做这个或python中的任何内置函数.
PS:列表只有1级嵌套.因此,[[a,[b,c]],d,e]不是可能的.
解决方法 您可以使用itertools.chain.from_iterable()
和 enumerate()
轻松完成此 *** 作: >>> import itertools>>> l = [['a','b','c'],'d','e',['f','g']]>>> for index,value in enumerate(itertools.chain.from_iterable(l),1):... print(index,value)... 1 a2 b3 c4 d5 e6 f7 g
编辑:正如mgilson所指出的,这对于多字符字符串作为顶层元素并不适用.我认为最好的解决方案就是在他的答案中使用生成器,但是,我认为字符串是特殊情况,而不是列表,所以我会颠倒逻辑:
def flatten(seq): for item in seq: if not isinstance(item,str): #Use `basestring` in 2.x yIEld from item #For Python <3.3 #for subitem in item: # yIEld subitem else: yIEld item总结
以上是内存溢出为你收集整理的Python:以指定格式打印列表列表全部内容,希望文章能够帮你解决Python:以指定格式打印列表列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)