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]
?