2017-09-26 18 views
-1

に置き換えられた単語を探すのは、言わせて:のpython - 、私は2つの文字列を持っている二つの文字列

a = "Hello, I'm Daniel and 15 years old." 
b = "Hello, I'm (name) and (age) years old." 

そして今、私はPythonが置き換えられた単語を見つけたいです。これは次のようなものです。

{"name": "Daniel", "age": "15"} 

解決策は見つかりませんでした。ご助力ありがとうございます!

+1

ようこそ。 [How to Ask](https://stackoverflow.com/help/how-to-ask)を読んで、あなたが試したことの詳細を記入してください。 – Antimony

+0

問題の説明にはさらに詳細が必要です。 「テンプレート」の文字列は、置換の名前を示す文字列以外の括弧を使用できますか? 2つの文字列は、置換サイト以外のどこでも同一であることが保証されていますか?交換はスペースやその他の句読点のない単一の単語であることが保証されていますか?テンプレート文字列内の名前は別個であることが保証されていますか?等々。そのような詳細は、このような問題で重要です。 –

答えて

3

あなたは(キーから()を削除する)str.split()と文字列のスライシングとzip()を使用することができます。

res = {v[1:-1]: k for k, v in zip(a.split(), b.split()) if k !=v} 

str.split()は空白の各文字列を分割するために使用されます。

出力:

>>> res 
{'name': 'Daniel', 'age': '15'} 
+0

WOWこの非常に迅速な回答をいただきありがとうございました!私はあなたの答えを受け入れるでしょう! – Frostie

0

あなたは辞書からの値で文字列を書式設定することができpython3使用。

"Hello, I'm {name} and {age} years old.".format(**{"name": "Daniel", "age": "15"})

または代わり

c = {"name": "Daniel", "age": "15"} "Hello, I'm {name} and {age} years old.".format(**c)

、あなたはどのようにこれらの値を抽出するために、あなたは正規表現を使用して値を見つけることができる求めている場合:StackOverflowのに

import re 
regularExpression = "^Hello, I'm (.*) and ([0-9]*).*" 
input = "Hello, I'm Daniel and 15 years old." 
match = re.search(regularExpression,input) 
result = {"name": match.group(1), "age": match.group(2)} 
関連する問題