0

私は 2 つのリストを持っています。1 つはドイツ語で、もう 1 つは英語です。英語のリストでドイツ語の単語/フレーズの翻訳の位置を見つけたいです。

例えば

german = ['Der', 'Hund', 'ist', u'groß', 'und', 'freundlich']
english = ['The', 'dog' , 'is', 'big', 'and', 'friendly']

「大きい」と翻訳されている部分文字列「ist Gross」、その位置、およびその翻訳の位置を見つけて、次のことを確認したいと思います。

  1. どちらも序盤
  2. どっちも末期
  3. ドイツ語のフレーズが最初にあり、英語のフレーズが最後にあります
  4. ドイツ語のフレーズが最後にあり、英語のフレーズが最初にある

ドイツ語と英語の最初の単語を使用して、両方が最初にあるかどうかを確認しようとしました。また、ドイツ語と英語の最後の単語が両方とも最後にあるかどうかも確認しました。私は 3 と 4 で立ち往生しています。

4

1 に答える 1

1

この特定のケースでは、それぞれのリスト内の対応する単語の位置は同じです。だからあなたはzip()それらを一緒にすることができます。

In [1]: german = ['Der', 'Hund', 'ist', u'groß', 'und', 'freundlich']

In [2]: english = ['The', 'dog' , 'is', 'big', 'and', 'friendly']

In [3]: zip(german, english)
Out[3]: [('Der', 'The'), ('Hund', 'dog'), ('ist', 'is'), (u'gro\xdf', 'big'), ('und', 'and'), ('freundlich', 'friendly')]

あなたの質問#1への答えは次のとおりです。

In [4]: together = zip(german, english)

In [5]: together[0][0] == 'ist'
Out[5]: False

そして#2の場合:

In [6]: together[-1][0] == u'groß'
Out[6]: False

質問#3と#4は、リストが作成される前提に違反しているため、リストに基づいて直接回答することはできません。

編集: あなたの最後の質問に答えるには、ドイツ語-英語の辞書を作成する必要があります。Pythonにはたまたま辞書タイプが組み込まれています。

In [3]: ge = {}

In [4]: for g, e in zip(german, english):
   ...:     ge[g] = e
   ...:     

In [5]: ge
Out[5]: {'Der': 'The', 'ist': 'is', 'und': 'and', u'gro\xdf': 'big', 'Hund': 'dog', 'freundlich': 'friendly'}

質問#3は一般的に次のようになります。

In [6]: german[0] == 'ist' and german[1] == u'groß' and english[-2] == ge['ist'] and english[-1] == ge[u'groß']
Out[6]: False

質問4:

In [16]: german[-2] == 'ist' and german[-1] == u'groß' and english[0] == ge['ist'] and english[1] == ge[u'groß']
Out[16]: False
于 2013-03-23T17:40:21.177 に答える