在python中将不同的列表合并在一起

Merge different lists together in Python

我是Python中的新手。我在清单上有困难。我有一个循环,它从文本文件中获取一些信息并执行函数。如果textfiles length为10行,则输出将是10个单独的列表,如下所示:〔0.45〕〔0.87〕…等等,对于n+1次(这取决于文本文件的长度)。

我如何将它们放在一个列表中,比如[0.45,0.87,…]?我尝试了不同的循环,但没有:(

我以前很感激:)…关于我糟糕的英语

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pyfann import libfann
import os
path="."
ext =".net"
files = [file for file in os.listdir(path) if file.lower().endswith(ext)]
for j in files:
 ann = libfann.neural_net()
 ann.create_from_file(j)
 print j
 f=open('nsltest1.dat','r')
 for i in f:
  x=i.strip()
  y=[float(i) for i in x.split()]
  z=ann.run(y)
  print z


如果所有列表都存储在一个列表中,则为cx1〔3〕,

1
2
3
# a = [[.45], [.87], ...]
import itertools
output = list(itertools.chain(*a))

使这个答案比其他答案更好的是,它将任意数量的列表整齐地连接在一行中,而不需要使用for循环或类似的任何操作。


加法运算符+是您可能需要的。

1
2
3
4
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list) #replace ( and ) with spaces if you're using python 2.x

将输出[1, 2, 3, 4, 5, 6]


您可能需要了解以下问题:

  • 如何将列表附加到第二个列表(连接列表)
  • 将列表合并为一个列表
  • python中的列表联接列表

基本上,如果你在一个循环中阅读你的行,你可以

1
2
3
4
result = []
for line in file:
    newlist = some_function(line) # newlist contains the result list for the current line
    result = result + newlist


你只需加上:[1] + [2] = [1, 2]