【问题标题】:Replacing strings in a 2d python list [closed]替换二维python列表中的字符串[关闭]
【发布时间】:2017-07-09 06:40:26
【问题描述】:

我正在以行的形式读取文本文件,然后用空格分割这些行,给我一个 2d 列表。嵌入数组中的一些字符串包含我试图使用str.replace 过滤掉的垃圾,但它不起作用。

import os

infile = 'CMULEX.txt'

data = []
with open(infile, 'r') as f:
    read_data = f.readlines()

    for row in read_data[:5]:
        split_line = (row.split())
        data.append(split_line)

for line in data[:5]:
    for wd in line:
        wd = wd.replace('Coda', '')

【问题讨论】:

  • “我知道”...我想你省略了结尾。
  • 你能给我们看一下 CMULEX.txt 的一部分吗?
  • 您没有将结果分配回列表项,只是wd 循环变量。
  • wd.replace("Coda, "") 是语法错误。应该是wd.replace("Coda", "")
  • 如何将其分配回列表项?

标签: python string list loops


【解决方案1】:

wd 是一个局部变量。它不是返回列表的“指针”。列表推导在这里似乎是一个优雅的解决方案:

for row in read_data[:5]:
    split_line = (row.split())
    data.append([wd.replace("Coda", "") for wd in split_line])

【讨论】:

    【解决方案2】:
    For line in data[:5]:
       line[:] = [ '' if x == 'Coda' else x for x in line]
    

    【讨论】:

    • 代码错误。它替换了line,而不是替换data
    • 他从未提到要替换数据。他只是想要一个过滤的输出。他可以在线执行所需的操作。
    猜你喜欢
    • 2023-03-27
    • 2017-09-20
    • 1970-01-01
    • 2022-11-20
    • 2017-12-06
    • 2019-01-30
    • 2019-02-26
    • 2010-10-20
    • 1970-01-01
    相关资源
    最近更新 更多