首页 / PYTHON / 有效地迭代python嵌套列表
有效地迭代python嵌套列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了有效地迭代python嵌套列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1152字,纯文字阅读大概需要2分钟。
内容图文
![有效地迭代python嵌套列表](/upload/InfoBanner/zyjiaocheng/705/d327b72939f041539a2ad730a4aab1d6.jpg)
我正在使用Python进行网络流量监控项目.不熟悉Python,所以我在这里寻求帮助.
简而言之,我正在检查流量和流量,我这样写:
for iter in ('in','out'):
netdata = myhttp()
print data
netdata是一个由嵌套列表组成的列表,其格式如下:
[ [t1,f1], [t2,f2], ...]
这里t表示时刻,f表示流量.但是我只想在这个时刻保留这些f进行内外,我想知道如何获得有效的代码.
经过一些搜索,我认为我需要使用创建流量列表(2个元素),然后使用zip函数同时迭代这两个列表,但是我很难写出正确的列表.由于我的netdata是一个很长的列表,效率也非常重要.
如果有任何令人困惑的事情,请告诉我,我会尽力澄清.
感谢帮助
解决方法:
除了代码的小修复(@Zero Piraeus提出的问题)之外,您的问题可能已经回答了here.在N度(树)中遍历列表列表的可能代码如下:
def traverse(item):
try:
for i in iter(item):
for j in traverse(i):
yield j
except TypeError:
yield item
例:
l = [1, [2, 3], [4, 5, [[6, 7], 8], 9], 10]
print [i for i in traverse(l)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
使其工作的关键是递归,并且使其有效工作的关键是使用生成器(关键字yield给出提示).生成器将遍历您的列表列表,逐项返回给您,无需复制数据或创建全新列表(除非您使用整个生成器将结果分配给列表,如我的示例中所示)
使用迭代器和生成器可以理解奇怪的概念(主要是关键字yield).查看此great answer以完全理解它们
内容总结
以上是互联网集市为您收集整理的有效地迭代python嵌套列表全部内容,希望文章能够帮你解决有效地迭代python嵌套列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。