if emp in like_list[j]:
TypeError: Unicode への強制: 文字列またはバッファが必要です。リストが見つかりました
empとはどちらもlike_list文字列を含むリストです。
if emp in like_list[j]:
TypeError: Unicode への強制: 文字列またはバッファが必要です。リストが見つかりました
empとはどちらもlike_list文字列を含むリストです。
empとはどちらlike_listもリストであるため、基本的にはリスト内のリストを探しています。
list 内の任意の要素と一致させようとしている場合はemp、次のようにリストを反復処理できます。
for element in emp:
if element in like_list:
--do something--
else:
--do something else--
または、like_listリストのリストである場合、ifステートメントは機能します。
empとの両方like_listが文字列のリストである場合、式emp in like_list[j]はリストが単一の文字列のメンバーであるかどうかをチェックしています。以下のコードでテストしたところ、わずかに異なる結果が得られましたTypeError。
>>> emp = ["foo", "bar"]
>>> like_list = ["baz", "quux"]
>>> if emp in like_list[0]:
... print "found"
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'in <string>' requires string as left operand, not list
これは、文字列のメンバーシップについて非文字列をテストできないことを示しています。これを修正するのはかなり簡単だと思いますが、何をしようとしていたのかは完全には明らかではありません。
like_list[j]文字列に文字列の 1 つが部分文字列として含まれているかどうかを確認する場合はemp、次を使用します。
if any(s in like_list[j] for s in emp):
like_list[j]代わりに、 が のいずれかの文字列と等しいかどうかを確認したい場合は、式empを逆にする必要があります。in
if like_list[j] in emp: