次の形式の Python リストがいくつかあります。
rating = ['What is your rating for?: Bob', 'What is your rating for?: Alice', 'What is your rating for?: Mary Jane']
opinion = ['What is your opinion of?: Bob', 'What is your opinion of?: Alice', 'What is your opinion of?: Mary Jane']
特定のリストを評価し、そこから 2 つのデータ構造を生成する関数を作成しようとしています。
- コロン (:) の後に表示される名前のリスト
- コロン (:) の前に繰り返されるテキストを持つ文字列変数
理想的には、元のリスト名に基づいて両方の項目に名前を付けます。また、区切り文字とその後の最初のスペースは無視する必要があります。
上記の 2 つの例の出力例:
rating_names = ['Bob', 'Alice', 'Mary Jane']
rating_text = 'What is your rating for?'
opinion_names = ['Bob', 'Alice', 'Mary Jane']
opinion_text = 'What is your opinion of?'
各リスト項目から固定文字列を削除することで、単一のリストに対してこれを機能させることができましたが、区切り文字の前の可変数の文字と2の可能性に対して機能させる方法を完全には理解していませんその後に単語名 (例: 'Mary Jane') を付けます。
rating_names = ([s.replace('What is your rating for?': ','') for s in rating])
検索後、look-ahead ( 1 , 2 )のような正規表現が解決策のように見えますが、それも機能しません。