我需要在Python 2.x
中找到这两行Perl的完全等价物PERL:
foreach my $edge (@edges){
$edge =~ s/[\(\)]//g;
my @verts = split(/,/, $edge);
PYTHON:
for edge in edges:
edge = ???
verts = ???
非常感谢。
答案 0 :(得分:4)
edge = edge.translate(None, '()')
verts = edge.split(',')
您可能还希望在创建顶点时将字符串转换为整数:
verts = map(int, edge.split(','))
答案 1 :(得分:4)
使用正则表达式模块贴近Perl版本:
for edge in edges:
edge = re.sub( '[()]', '', edge )
verts = filter( None, re.split( ',', edge ) )
在脚本的顶部确保包含
import re
答案 2 :(得分:0)
使用字符串方法replace
和split
(或来自sub
模块的split
和re
。通常,阅读正则表达式 - 大多数现代语言实现(也是Python)都基于Perls。你的代码中的模式非常简单:
首先你删除所有出现的'('和')',而不是分开'by'(我可以说,我多年没有用perl编写)