0

文字列のリストがあります(以下の形式)

 ['email', 'go', 'a', 'instance', 'at', 'boo', 'email', 'message', 'message', 'instance', 'at', 'hello']

2文字未満の長さのものを削除するにはどうすればよいですか?

4

2 に答える 2

9

リスト内包表記を使用します。

new_list = [k for k in old_list if len(k) >= 2]

リスト内包表記は非常に便利で使いやすい場合があります。詳細については、こちらこちらをご覧ください。

于 2013-02-08T12:46:16.480 に答える
2

多くの場合、リスト内包表記を使用すると最も読みやすくなります。

myList = ['email', 'go', 'a', 'instance', 'at', 'boo', 'email', 'message', 'message', 'instance', 'at', 'hello']

myResultList = [x for x in myList if len(x) >=2]

List Comprehensionは、別のリストを繰り返し処理して新しいリストを作成する手段です。myList の各 x の例では、len(x) <= 2 の場合、リスト内包表記は x を保持します。

次のようなこともできます。

myResultList = [x + "!oh" for x in myList if len(x) ==2]

その結果、['go!oh','at!oh','at!oh']

于 2013-02-08T12:47:09.513 に答える