循环遍历列表元素以替换每个元素中的字符串

2024-10-06 15:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份大学名单:

['1 1  LOMONOSOV MOSCOW STATE UNIVERSITY  XL FO VH  5  A  100 100 100  87.1            52.4 52  99.3 87  100 100', '', '', '', ''],
['2 2 NOVOSIBIRSK STATE UNIVERSITY                                                 M CO VH 98.1 96.5 88.9 98.8 59.7 38.1 69.8 92.1 99.4 96.7', '', '', '', ''],
...

我想删除多余的信息(nrs,空格,…),只保留大学名称。在

为此,我尝试循环查看我的列表,用“”替换数字和其他不需要的字符。在

到目前为止,我已经:

^{pr2}$

不幸的是,我只返回了列表的最后一个元素(尽管不需要的字符被删除了…)。在

我错过了什么?或者你有更好的解决方案吗? 非常感谢!在


Tags: 信息列表字符大学stateco名单fo
2条回答

你可以试试:

input_char = ""
conv = ''.maketrans({c: input_char for c in unwanted})

l = list()   # if you want a list of all your strings
for i in range(len(flat_data2)):
    mainString = flat_data2[i].translate(conv)
    l.append(mainString)

您的问题来自于这样一个事实:每次循环迭代都要定义函数,但是您没有运行它或保存它的输出。要使其生效,最少的更改是:

def replaceMultiple(s, unwanted, input_char):
    # Iterate over the strings to be replaced
    for elem in unwanted:
        # Replace the string, does not do anything if `elem` not in `s`
        s = s.replace(elem, input_char)
    return s

flat_data2_new = [replaceMultiple(x) for x in flat_data2]

相关问题 更多 >