删除以“.”结尾的单词

2024-06-26 18:01:24 发布

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

我想删除一系列名字中所有中间的首字母。我发现我可以用Python做这个,所以我想用ruby来试试。在Python中,我可以使用endswith命令删除csv文件中的所有中间缩写,因为它们是唯一以“.”结尾的项

示例

steve A. walkins

michael todd

Angel, Blair C.

不是所有的名字都有固定的模式,但所有中间的名字首字母都有。因此,为了让自己学会一些ruby,尝试找出在python中可以使用的endswith函数的等效命令和用法。在

我的示例Python代码是。在

^{pr2}$

Tags: 文件csv命令示例结尾名字steveruby
2条回答

不要假装我的答案比Ivaylo Strandjev建议的好,但是如果您想要一个oneliner,它是将python代码“翻译”为ruby:

name.split.select{|t| !t.end_with?('.')}.join(' ')

或者更清楚(感谢@ukaszNiemier)

^{pr2}$

在ruby中有一个方法end_with?。在

下面是一些ruby代码的示例,可以执行您想要的操作:

def remove_initial name
   names = name.split
   names.select{|t| !t.end_with?(".")}.inject{|a,b| a + " " + b}
end

还有一个简短的检查:

第一行name.split只是使用默认的空白分隔符拆分名称。在

names.select{|t| !t.end_with?(".")}将只过滤不以.结尾的名称,然后inject{|a,b| a + " " + b}将累加剩余的名称,并在它们之间添加一个空白。在

相关问题 更多 >