2016-05-13 6 views
0

は、だから私は、単一の列を取得することを知って、私はリストのリストの後半部分をリストのリストとして取得するにはどうすればよいですか?

a = list(zip(*f)[0]) 

と、fでリストの最初の要素を含むリストになる結果を記述する必要があると思います。

リストごとに複数の要素を取得するにはどうすればよいですか?私は試しました

しかし、内部リストがすべてのリストのi番目の要素で構成されるリストのリストを返したところです。

答えて

5

簡単な方法はzip()を使用しないことです。代わりに、list comprehensionを使用します。

a = [sub[1:19] for sub in f] 

それは実際にあなたが探している後半の場合:[1, 2, 3, 4, 5]3が含まれます

a = [sub[len(sub) // 2:] for sub in f] 

a = [sub[(len(sub) + 1) // 2:] for sub in f] 
0

パフォーマンスと可読性の両方について、@ zondoのソリューションを間違いなく推奨します。しかし、zipベースのソリューションが可能であり、(Pythonの2)は次のようになります。

zip(*zip(*f)[1:19]) 

あなたは、開梱ビュン、スライシング、開梱といえ任意の深刻なコードで再ビュンのこのサイクルを考慮すべきではありません。 )

Python 3では、の結果をlistにキャストしなければならず、これはこれよりもセクシーではありません。

+0

@ zondo有効な点もあります。いくつかの資格を追加しました。 – schwobaseggl

関連する問題