質問: ['chemistry', 1997, 2000] としたいという事です。 特定の文字が要素すべてと一致した場合は、in関数で削除できることは知ったのですが、 含まれる文字列となりますとin関数ではムリです。 また、含まれている文字列の要素を検索し、さらに消すとなりますと、さらにややこしいです。 この場合、for文で、1個1個見て、特定の要素が含まれているか調査し、 その要素場所を削除するという方法になるかと思いますが、 他に簡単な構文で書ける方法はありますでしょうか。 何卒、お知恵を拝借させてください。 宜しくお願いいたします。
回答: filterを使います。filterは、条件を満たす要素だけをリストに含める機能です。 * type が str のとき、'phy'を含まない * type が str 以外、無条件に True ``` list1 = ['physics', 'chemistry', 1997, 2000] list(filter(lambda x: x.find('phy') == -1 if type(x) is str else True , list1)) ```