1

別のリストを参考にして、リスト内の項目から特定の文字を削除しようとしています。現在私は持っています:

forbiddenList = ["a", "i"]
tempList = ["this", "is", "a", "test"]
sentenceList = [s.replace(items.forbiddenList, '') for s in tempList]
print(sentenceList)

私が望んでいた印刷:

["ths", "s", "test"]

もちろん、禁止リストは非常に小さいので、それぞれを個別に置き換えることができますが、「禁止」アイテムの広範なリストがある場合に、これを「適切に」行う方法を知りたいです。

4

2 に答える 2

3

ネストされたリスト内包表記を使用できます。

>>> [''.join(j for j in i if j not in forbiddenList) for i in tempList]
['ths', 's', '', 'test']

要素が空になった場合も要素を削除したいようです(すべての文字が にあったようにforbiddenList)?もしそうなら、あなたは全体を別のリストコンプでラップすることができます(読みやすさを犠牲にして)

>>> [s for s in [''.join(j for j in i if j not in forbiddenList) for i in tempList] if s]
['ths', 's', 'test']
于 2015-05-04T19:00:58.320 に答える