相当于Python中的这两行Perl?

时间:2011-08-03 19:05:03

标签: 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 :(得分: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)

使用字符串方法replacesplit(或来自sub模块的splitre。通常,阅读正则表达式 - 大多数现代语言实现(也是Python)都基于Perls。你的代码中的模式非常简单: 首先你删除所有出现的'('和')',而不是分开'by'(我可以说,我多年没有用perl编写)