Python:以指定格式打印列表列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:以指定格式打印列表列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1236字,纯文字阅读大概需要2分钟。
内容图文
![Python:以指定格式打印列表列表](/upload/InfoBanner/zyjiaocheng/762/8948dc12ad4d4b1ca98a54f9425761fe.jpg)
我有一个清单列表l = [[‘a’,’b’,’c’],’d’,’e’,[‘f’,’g’]].列表元素并不总是必须是字母表.
现在,我使用了以下代码:
>>> 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 a
2 b
3 c
4 d
5 e
6 f
7 g
您可以看到我打印出结果的格式.
另一个例子:
l = [['aaa','bbb','xxx'], 'ddd']
Output =
1 aaa
2 bbb
3 xxx
4 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 a
2 b
3 c
4 d
5 e
6 f
7 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:以指定格式打印列表列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。