[解決済み] ヘッドとテールが一列に並ぶ
2022-11-15 21:51:16
質問
Pythonicな方法で、1つのコマンドでリストの最初の要素と "tail"を解凍する方法はありますか?
例えば
>> head, tail = **some_magic applied to** [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
>> head
1
>>> tail
[1, 2, 3, 5, 8, 13, 21, 34, 55]
どのように解決するのですか?
Python 3.xでは、うまくできます。
>>> head, *tail = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
>>> head
1
>>> tail
[1, 2, 3, 5, 8, 13, 21, 34, 55]
3.x での新機能は
*
演算子を使うことです。これは
PEP 3132 - 拡張イテラブル・アンパッキング
. これはまた、シーケンスだけでなく、任意のイテラブルで動作するという利点があります。
また、これは 本当に を読むことができます。
PEP で説明されているように、2.x で同等のことを (潜在的に一時的なリストを作ることなく) したい場合は、これを行う必要があります。
it = iter(iterable)
head, tail = next(it), list(it)
コメントにもあるように、これはまた
head
に対して例外をスローするのではなく、デフォルト値を取得する機会にもなります。この振る舞いを望むなら
next()
はデフォルト値を持つオプションの第二引数を取りますので
next(it, None)
は
None
となります。
当然ながら、リストで作業している場合、3.xの構文がない最も簡単な方法は。
head, tail = seq[0], seq[1:]
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] if 節の終了方法
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法