从python中的变量中的多项创建一个列表

Posted

技术标签:

【中文标题】从python中的变量中的多项创建一个列表【英文标题】:make one list from multi items in a variable in python 【发布时间】:2015-09-24 22:11:06 【问题描述】:

我制作了一个简单的程序来读取一个包含 3 行文本的文件。我已经拆分了行并从 t2 变量中获取了输出。如何去掉括号使其成为一个列表?

fname = 'dogD.txt'
fh = open(fname)
for line in fh:
    t2 = line.strip()
    t2 = t2.split()
    print t2

['Here', 'is', 'a', 'big', 'brown', 'dog']
['It', 'is', 'the', 'brownest', 'dog', 'you', 'have', 'ever', 'seen']
['Always', 'wanting', 'to', 'run', 'around', 'the', 'yard']

【问题讨论】:

How to merge multiple lists into one list in python? 的可能重复项 【参考方案1】:

使用extend()方法可以轻松完成:

fname = 'dogD.txt'
fh = open(fname)
t2 = []
for line in fh:
    t2.append(line.strip().split())
print t2

【讨论】:

【参考方案2】:

它们都是不同的列表,如果你想让它们成为一个列表,你应该在 for 循环之前定义一个列表,然后用你从文件中获取的列表扩展该列表。

例子-

fname = 'dogD.txt'
fh = open(fname)
res = []
for line in fh:
    t2 = line.strip().split()
    res.extend(t2)
print res

或者你也可以使用列表连接。

fname = 'dogD.txt'
fh = open(fname)
res = []
for line in fh:
    t2 = line.strip().split()
    res += t2
print res

【讨论】:

请记住接受一个对你帮助最大(或者你最喜欢)的答案。【参考方案3】:

你可以把所有的分割线加在一起:

fname = 'dogD.txt'
t2=[]
with open(fname) as fh:
  for line in fh:
    t2 += line.strip().split()
  print t2

您还可以使用函数并返回在内存使用方面更高效的生成器:

fname =  'dogD.txt'
def spliter(fname):
    with open(fname) as fh:
      for line in fh:
        for i in line.strip().split():
          yield i

如果你想循环遍历你可以做的结果:

for i in spliter(fname) :
       #do stuff with i

如果你想得到一个列表,你可以使用list 函数将生成器转换为列表:

print list(spliter(fname))

【讨论】:

感谢您的帮助,非常感谢 Kasra @PeterP 不客气!如果对您有帮助,您可以通过accepting 答案告诉社区! ;)【参考方案4】:

operator 模块定义了+ 运算符的函数版本;可以添加列表 - 这是连接。

下面的方法打开文件并通过剥离/拆分处理每一行。然后将单独处理的行连接到一个列表中:

import operator

# determine what to do for each line in the file
def procLine(line):
   return line.strip().split()

with open("dogD.txt") as fd:
   # a file is iterable so map() can be used to
   # call a function on each element - a line in the file
   t2 = reduce(operator.add, map(procLine, fd))

【讨论】:

以上是关于从python中的变量中的多项创建一个列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Javascript 将下拉列表的多项选择保存到变量

一个 VPC 终端节点用于 AWS 中的多项服务

报表生成器 3 中的多项选择

贝宝 - 一次结帐中的多项协议

ios应用程序中的多项权利

TreeView 中的多项选择