1

ユーザーが送信した文字列に特定の部分文字列が含まれているかどうかを確認し、返信を印刷するときにそれらを置き換えようとしました。

list_in_list = [["I", "you"], ["We", "Us"], ["Her", "Him"]]

そして、次のコードを使用して、値がデバッグとして返信されているかどうかをテストしています。

print [row[0] for row in list_in_list] in reply

返信はユーザーが入力した文字列です

ただし、次のエラーが返されます。

TypeError: 'in <string>' requires string as left operand, not list

また、置換する正しい値を取得する方法がわかりません。私はそれをループすることを考えています

reply.replace(list_in_list[0][x], list_in_list[0][x]) 

ここで、x = 実行されたループの量ですが、それをコーディングする方法について困惑しています。

4

2 に答える 2

1

次のような意味でしたか:

print [row[0] for row in list_in_list if row[0] in reply]

これにより、最初の列の値が得られますが、それらがin reply. 例えば:

>>> list_in_list = [["I", "you"], ["We", "Us"], ["Her", "Him"]]
>>> reply = "I like cake"
>>> print [row[0] for row in list_in_list if row[0] in reply]
['I']
>>> reply = "We met Her yesterday"
>>> print [row[0] for row in list_in_list if row[0] in reply]
['We', 'Her']
于 2013-04-14T00:41:21.603 に答える