我正在用Python开发一个网络流量监视器项目。对Python不太熟悉,所以我在这里寻求帮助。
简言之,我正在检查进出交通,我是这样写的:
for iter in ('in','out'):
netdata = myhttp()
print data
netdata是一个由嵌套列表组成的列表,其格式如下:
[ [t1,f1], [t2,f2], ...]
这里t
表示时刻,f
表示流。不过,我只想在这一刻保持这些f的输入和输出,我想知道有什么方法可以得到一个有效的代码。
经过一些搜索,我想我需要使用创建一个流量列表(2个元素),然后使用zip函数同时迭代两个列表,但是我很难写出正确的列表。因为我的netdata是一个很长的列表,所以效率也很重要。
如果有什么困惑,让我知道,我会尽量澄清。 谢谢你的帮助
当尝试另一个答案时,函数无法递归,因此我将其修改为不递归。它仍然工作得很快,可以处理大的嵌套列表(至少在我的测试中是这样)。它是一个Python 3专用函数。
除了对代码进行一些小的修改(由@Zero Piraeus引发的问题),您的问题可能已经得到了回答here。遍历N度(树)列表的可能代码如下:
示例:
使其工作的关键是递归,使其有效工作的关键是使用生成器(关键字
yield
给出提示)。生成器将遍历列表列表并逐项返回给您,而无需复制数据或创建一个完整的新列表(除非您使用整个生成器将结果分配给列表,如我的示例中所示)使用迭代器和生成器可能是很奇怪的概念(主要是关键字
yield
)。签出这个great answer以完全理解它们你所显示的代码没有多大意义。它的作用如下:
循环遍历序列} ),该变量在其两个传递的循环上。
'in', 'out'
,依次将这两个字符串中的每一个赋给变量iter
(在进程中屏蔽内置函数^{完全忽略循环中
iter
的值。将
myhttp()
的结果赋给变量netdata
on每次通过循环。完全忽略
netdata
的值,而是尝试在循环的每次传递上打印未定义的变量data
。根据您描述的嵌套列表,您可能需要这样的内容:
相关问题 更多 >
编程相关推荐