Мне нужно найти точный эквивалент этих двух строк Perl в Python 2.x
PERL:
foreach my $edge (@edges){ $edge =~ s/[\(\)]//g; my @verts = split(/,/, $edge);
PYTHON:
for edge in edges: edge = ??? verts = ???
Большое спасибо.
edge = edge.translate(None, '()') verts = edge.split(',')
Вы также можете преобразовать строки в целые при создании вертов, используя:
verts = map(int, edge.split(','))
Использование модуля regex, чтобы придерживаться версии Perl:
for edge in edges: edge = re.sub( '[()]', '', edge ) verts = filter( None, re.split( ',', edge ) )
В верхней части скрипта обязательно включите
import re
использовать строковые методы replace и split (или sub и split из re модуля).В общем, читайте о Регулярных выражениях - большинство современных реализаций языков (в том числе и с Python) основаны на Perls.И шаблоны в вашем коде очень просты: сначала вы удаляете все вхождения '(' и ')', а затем разбиваете строку на ',' (как я могу сказать, я не писал в perl годами)
replace
split
sub
re