如何根据for循环的结果制作一个列表

我有这个脚本


for row in c:

    res = subprocess.Popen('bgpq3 -4 {} -m 24 -l {}'.format(row[5],row[2]), shell=True, universal_newlines=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)

    stdout, stderr = res.communicate()


    lines = []

    for line in stdout.split('\n')[1:10]:

        lines.append(line)

        print(lines)

结果是:


   ['ip prefix-list 12414 permit 5.57.248.0/21']

   ['ip prefix-list 12414 permit 5.57.248.0/21', 'ip prefix-list 12414 permit 5.199.144.0/20']

   ['ip prefix-list 12414 permit 5.57.248.0/21', 'ip prefix-list 12414 permit 5.199.144.0/20', 'ip prefix-list 12414 permit 5.206.208.0/20']

我正在使用 append 方法制作一个大列表,但我得到了很多列表!任何想法?


一只甜甜圈
浏览 241回答 1
1回答

jeck猫

如您所见,正确的列表是最后打印的列表。这是因为您将print函数放在循环中,并将在所有迭代中打印出当前列表,因此,从for正文中删除打印并将其从循环中删除。for line in stdout.split('\n')[1:10]:    lines.append(line)print(lines)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python