Python中等价于这两行Perl的代码是什么?
我需要在Python 2.x中找到这两行Perl代码的完全等价写法。
PERL:
foreach my $edge (@edges){
$edge =~ s/[\(\)]//g;
my @verts = split(/,/, $edge);
PYTHON:
for edge in edges:
edge = ???
verts = ???
非常感谢你。
3 个回答
0
可以使用字符串的方法 replace
和 split
(或者用 re
模块里的 sub
和 split
)。一般来说,了解一下正则表达式会很有帮助——大多数现代编程语言的实现(包括Python)都是基于Perl的。而你代码中的模式其实很简单:首先把所有的'('和')'都去掉,然后用','来分割字符串(我记得没错的话,我已经很多年没写过Perl了)。
4
使用正则表达式模块来尽量与Perl版本保持一致:
for edge in edges:
edge = re.sub( '[()]', '', edge )
verts = filter( None, re.split( ',', edge ) )
在脚本的开头,确保包含以下内容
import re
4
edge = edge.translate(None, '()')
verts = edge.split(',')
你可能还想在创建顶点时把字符串转换成整数,可以使用:
verts = map(int, edge.split(','))