1

私のプログラムを完成させようとしている皆さん。これが私のコードです:

lists = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

#I want to make a new list consisting of only numbers above 50 from that list
if any(list > 50 for list in list):
newlists = list

やり方がわかりません。私は何か間違ったことをしています、誰かが私を助けることができますか?

4

3 に答える 3

3

このようなものはうまくいきます:

new_list = [ x for x in lists if x > 50 ]

これは「リスト内包表記」として知られており、非常に便利です。

于 2012-12-17T21:14:08.360 に答える
3

newlist = [x for x in lists if x > 50]

リスト内包表記についてはこちら

于 2012-12-17T21:15:01.097 に答える
2

2 つのオプション。リスト内包表記の使用:

lst = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[x for x in lst if x > 50]

filterPython 2.x での使用:

filter(lambda x: x > 50, lst)

またはfilter、コメントで指摘されているように Python 3.x で使用するfilterと、このバージョンではイテレータが返されます。必要に応じて、最初に結果をリストに変換する必要があります。

list(filter(lambda x: x > 50, lst))

とにかく、結果は期待どおりです。

=> [60, 70, 80, 90, 100]
于 2012-12-17T21:17:23.217 に答える