セミコロン (;) またはコム (,) で区切られた括弧内のキャラクター名を持つアクターのリストが与えられます。
Shelley Winters [Ruby]; Millicent Martin [Siddie]; Julia Foster [Gilda];
Jane Asher [Annie]; Shirley Ann Field [Carla]; Vivien Merchant [Lily];
Eleanor Bron [Woman Doctor], Denholm Elliott [Mr. Smith; abortionist];
Alfie Bass [Harry]
これを [(actor, character),...] の形式の 2 つのタイプのリストに解析するにはどうすればよいでしょうか。
--> [('Shelley Winters', 'Ruby'), ('Millicent Martin', 'Siddie'),
('Denholm Elliott', 'Mr. Smith; abortionist')]
私はもともと持っていました:
actors = [item.strip().rstrip(']') for item in re.split('\[|,|;',data['actors'])]
data['actors'] = [(actors[i], actors[i + 1]) for i in range(0, len(actors), 2)]
しかし、括弧内の項目も分割されるため、これはうまく機能しません。