Python 如何从for循环的结果中创建一个列表

Python 如何从for循环的结果中创建一个列表,python,list,for-loop,Python,List,For Loop,我有这个剧本 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

我有这个剧本

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方法制作一个大列表,但是我得到了很多列表!
有什么想法吗?

正如您所见,正确的列表是最后打印的列表。这是因为您将
print
函数放在循环中,并将打印出所有的当前列表 迭代,因此,从主体的
中删除打印,并将其置于循环之外

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

将您的
打印
中删除。简单地说:
行=stdout.split('\n')[1:10]