当前位置: 首页 > 面试题库 >

替换列表中的字符串(使用re.sub)

齐典
2023-03-14
问题内容

我正在尝试替换文件列表中的部分文件扩展名。我希望能够遍历项目(文件)并删除扩展名。我不知道当re.sub作为第三个参数需要一个字符串时,如何适当地遍历列表中的项目。例如。re.sub(pattern,repl,string,count
= 0,标志= 0)

import re

file_lst = ['cats1.fa', 'cats2.fa', 'dog1.fa', 'dog2.fa']
file_lst_trimmed =[]

for file in file_lst:
    file_lst_trimmed = re.sub(r'1.fa', '', file)

这里出现的问题是re.sub需要一个字符串,而我希望它在字符串列表中循环。

感谢您的任何建议!


问题答案:

您可以使用列表推导来使用清理后的文件名来构造新列表。 \d是匹配单个字符且$仅匹配字符串末尾的正则表达式。

file_lst_trimmed = [re.sub(r'\d\.fa$', '', file) for file in file_lst]

结果:

>>> file_lst_trimmed 
['cats', 'cats', 'dog', 'dog']


 类似资料:
  • 问题内容: 有没有更短的方法可以编写以下代码? 注意,我不需要替换那些确切的值。我只是在寻找一种将5条以上的线变成少于5条线的方法 问题答案: 看起来是使用循环的好机会: 如果您不介意括号,则更快的方法是:

  • 两行的一个例子是:([a,b,c],d)和([d,e],a)我想把这些行转换成([a,b,c],[d,e])和([d,e],[a,b,c]) dataframe的列名是“src”和“dst”。 我如何处理这个问题?

  • 我有一个值为-f.e.:。 我想替换这个字符: ,,,,,,,与那些: <代码>>、<代码>>、<代码>l、<代码>o、<代码>s、<代码>z、<代码>c、<代码>n。 这里我的意思是,如果解析器将找到f.e.:char(在第一个列表中是第二个)应该替换为在第二个列表中处于相同位置/位置的char,在本例中是:。 char应替换为char。 char应替换为char。 在我的例子中,要替换的字符列

  • 因此,我正在处理一个项目,其中我必须将包含希腊字母的字符串转换为包含此字母的英语表示的字符串。因此,希腊将变为,将成为。 我已经创建了一个HashMap,它具有从Unicode字符到普通字符串的适当转换。 我使用了一个简单的循环来检查输入中的是否是中的,如果是,那么我将使用附加其替换。以下是我用来执行此操作的代码: 这是一个公共静态方法,以< code>String作为输入。我想知道的是,是否有可

  • 问题内容: 我得到了这个清单: 我想用一些与之相似的奇异值代替,从而得到一个新的清单: 问题答案: 这些称为列表推导。

  • 我有这样的桌子: 在该