Python:如何使用for循环的多个列表

时间:2016-01-18 14:29:17

标签: python python-2.7

我想使用打印列表中的每个项目来存储在数据库中。因此,每个项目将单独调用以存储一个表(此表有两列,列IP地址和列端口)。 我有两个列表:list_a,其中存储所有IP地址(例如192.168.1.143),list_b(例如22)存储所有端口号。

result_list = []
for host in list_a:
  for port in list_b:
    result_list.append([host,port])
      for item in result_list:
        print item

使用此代码,我得到以下输出,这是正确的:

['192.168.1.143', 22]
['192.168.1.51', 22]
['192.168.1.50', 80]
['192.168.1.43', 22]
['192.168.1.61', 20]
['192.168.1.60', 80]

但是当我使用item,item [0]或item [1]访问列表中的项目时,只存储最后的元素。在这种情况下['192.168.1.60',80]。 如何将所有元素存储在列表中,以便我可以使用列表中的所有元素?

2 个答案:

答案 0 :(得分:1)

我不完全确定你要做什么,但如果你想要两个列表中的笛卡尔积,我认为这是pythonic方式:

from itertools import product
for p in in product(list_a,list_b):
    do_stuff(p)

根据科波菲尔的提示略微编辑。

答案 1 :(得分:0)

我找到了答案。问题是该脚本生成了多个列表(如上所示)。解决方案是在嵌套列表中打印输出,如下所示:

[['192.168.1.143', 22],['192.168.1.51', 22],['192.168.1.50', 80],['192.168.1.43', 22],['192.168.1.60', 80]]

从这里我创建了另一个for循环来访问所有元素。谢谢大家!