2017-05-21 8 views
-6

私は、list = [1,2,3,'hello','bye',10,11,12,12.2,12.3]という奇数インデックス(0から始まる)または整数である要素を返したいとします。アイデアはできるだけシンプルなコードにすることです。 ありがとう!あなたはリストの内包使用することができますリストから返された1つまたは別の条件がPythonで返されます

+2

これは宿題ですか? – anonymoose

+3

あなたが試したことを教えてください – donkopotamus

+0

'1.0'は整数としてカウントされますか? – anonymoose

答えて

2

[x for i,x in enumerate(lst) if i%2 == 1 or isinstance(x,int)]

をここでは、インデックス(ゼロベース)と要素とのタプル(i,x)を生成するenumerate(..)を利用します。リスト内のifフィルタ:i%2 == 1(奇数インデックス)またはxのインスタンスがintの場合にのみ要素が許可されます。これらの要素については、結果にxを追加します。

結果は次のとおりです。

>>> [x for i,x in enumerate(lst) if i%2 == 1 or isinstance(x,int)] 
[1, 2, 3, 'hello', 10, 11, 12, 12.3] 

変数名としてlistを使用ないでください:listを使用することによって、あなたはもはやlist(..)を使用することはできませんので、それはクラスの名前です。この回答はlstで処理されます。

関連する問題