2つのリストAとBがあります。Aの対応するエントリがリストBにある場合は1です。文字列の末尾には0が入ります。リスト内包表記を使用して2つのリストに共通するデータにラベルを付ける
A = ['Mary Sue', 'John Doe', 'Alice Stella', 'James May', 'Susie May']
B = ['Smith', 'Stirling', 'Doe']
私は、これは、より一般的な問題の特定の場合であることに注意してください結果に
[0, 1, 0, 0, 0]
を与えるリストの内包をしたいです。 Aの要素は任意の空白を持つことができ、任意の数の単語を含むことができます。同様に、Bの要素は任意の数の単語を持つことができます。返されるリストの長さは、それが0を与えるので、私はディメンションではありませんしかし、例えば
A = [' Tom Barry Stirling Adam', 'Maddox Smith', 'George Washington Howard Smith']
B = ['Washington Howard Smith', 'Stirling Adam']
は、これまでのところ、私は
[1 if y.endswith(x) else 0 for x in B for y in A]
を以下している
[1, 0, 1]
を返す必要がありますA [i]、B [j]要素の全ての組み合わせに対して1である。 forループを使用したソリューションに興味はありません。スピードのためにリストの理解が必要です。
最初の名前は常にスキップされ、常に完全な部分文字列に一致しますか? –
いいえ、AとBが全く同じ名前を含む場合があります。 – deltap
文字通り任意のバリエーションが可能ですか? –