繁体   English   中英

从文件中的数据组成的列表中删除字符

[英]Remove character from a list made of a data in a file

好吧,我有一个包含此数据的文件:

  1. 耶稣·罗德里格斯(5G 5.2 1.7)
  2. 卢卡·卓里克(Luka Zorichk),21 P 11.2 4.8
  3. 豪尔赫·坎皮隆斯,15升7 3.3

还有更多数据。每行都有一个名称,数字,它们的位置,得分数和篮板率(“ Jesus Rodriguez”,“ 5”,“ E”,“ 5.2”,“ 1.7”)。

哎呀,我遇到的问题是当我从文件中获取数据时,名称用逗号添加到列表中,并且我不希望该字符出现在列表上。 这是我现在拥有的代码:

def leeFich(f):
    listaDatos = list()
    d = open(f)
    for lin in d:
        listaDatos.append(lin.strip())
        for i in listaDatos:
            i.replace(',', ' ') // Here is what I have tried to remove the comma
    return(listaDatos)

print(leeFich("ligaBaloncesto.txt"))

并且输出在我刚创建的列表的第一项中仍带有逗号。

输出:['罗德里格斯(Jesus Rodriguez),5 E 5.2 1.7','卢卡·佐里克(Luka Zorichk),21 P 11.2 4.8','豪尔赫·坎皮隆(Jorge Campillons),15 L 7 3.3','']

预期的输出:['Jesus Rodriguez 5 E 5.2 1.7','Luka Zorichk,21 P 11.2 4.8','Jorge Campillons,15 L 7 3.3','']

首先, str.replace无法就地工作。 此外,您可以在删除行的同时对上述几行进行替换。 其次,对于读取文件对象,最好with语句一起使用with语句在块末尾关闭文件,并且不会为您打开内存泄漏的机会。 第三,不用创建列表并在每个循环上调用append属性,您可以使用列表推导简单地创建列表。

def leeFich(f):
    with open(f) as d:
        lista_datos = [lin.strip().replace(',', '') for lin in d]
    return list_dataos

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM