【问题标题】:Append data from file to list将文件中的数据附加到列表
【发布时间】:2021-03-27 14:05:41
【问题描述】:

我正在尝试附加从文件中读取的数据。假设文件有以下文本:

cat
dog
bird

我创建了一个名为“net”的列表,我想将每个字符串添加到一起,结果是:

cat dog bird

以下是我目前拥有的示例:

net = []
with open(out_file, 'r+') as fin:
 data = fin.read().splitlines(True)

net.append(data[0]+data[1]+data[2])

这可行,但我正在使用的文件有某些条件可以使此操作达到:

net.append(data[0]+data[1]+data[2]+...+data[20])

有没有办法可以简化这个操作?这样它就知道是否该做:

net.append(data[0]+data[1]+data[2]+data[3]+data[4])

或:

net.append(data[0]+data[1]+data[2]+data[3]+data[4]+data[5]+data[6]+data[7]+data[8])

编辑:我应该澄清一下。我不想合并文件中的每个字符串。例如,我可能只想组合 'cat' 和 'dog' 而忽略 'bird'。

【问题讨论】:

  • 如果要再次加入字符串,为什么要先拆分它们?
  • net.extend(data)

标签: python string append


【解决方案1】:
net = []
with open(out_file, 'r+') as fin:
    net.append(''.join(fin.readlines()))

【讨论】:

  • 如果我只想加入 'cat' 和 'dog' 而忽略 'bird' 怎么办?
  • net.append(''.join([i for i fin.readlines() if i != 'bird']))
【解决方案2】:

您可以简单地使用for loop

for elem in data:
    net.append(elem)

如果您想将整个列表作为一个字符串,只需使用join

net.append(' '.join(data))

【讨论】:

  • 如何指定要使用的元素?例如,假设我在文件中间的第 100 行,想将第 100 + 101 + 102 行组合在一起?
  • 代替数据,使用数据[100:102]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 2021-02-06
  • 2016-04-27
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
相关资源
最近更新 更多