Python slice how-to, Pythonのsliceは知っているけど、組み込みのsliceオブジェクトを使うにはどうしたらいいの?
2023-11-17 22:42:48
質問
組み込み関数
slice
はどのように使うのですか?
私が知っているPythonicスライスの直接的な方法 - 。
l1[start:stop:step]
. 私はスライスオブジェクトを持っている場合、私はそれを使用する方法を知りたいのですが?
どのように解決するのですか?
start:end:step]表記と同じフィールドでsliceを呼び出して、スライスを作成します。
sl = slice(0,4)
スライスを使うには、リストや文字列のインデックスと同じように渡せばよい。
>>> s = "ABCDEFGHIJKL"
>>> sl = slice(0,4)
>>> print(s[sl])
'ABCD'
固定長のテキストフィールドのファイルを持っているとします。 このファイル内の各「quot;record"」から値を簡単に抽出するために、スライスのリストを定義することができます。
data = """\
0010GEORGE JETSON 12345 SPACESHIP ST HOUSTON TX
0020WILE E COYOTE 312 ACME BLVD TUCSON AZ
0030FRED FLINTSTONE 246 GRANITE LANE BEDROCK CA
0040JONNY QUEST 31416 SCIENCE AVE PALO ALTO CA""".splitlines()
fieldslices = [slice(*fielddef) for fielddef in [
(0,4), (4, 21), (21,42), (42,56), (56,58),
]]
fields = "id name address city state".split()
for rec in data:
for field,sl in zip(fields, fieldslices):
print("{} : {}".format(field, rec[sl]))
print('')
# or this same code using itemgetter, to make a function that
# extracts all slices from a string into a tuple of values
import operator
rec_reader = operator.itemgetter(*fieldslices)
for rec in data:
for field, field_value in zip(fields, rec_reader(rec)):
print("{} : {}".format(field, field_value))
print('')
印刷します。
id : 0010
name : GEORGE JETSON
address : 12345 SPACESHIP ST
city : HOUSTON
state : TX
id : 0020
name : WILE E COYOTE
address : 312 ACME BLVD
city : TUCSON
state : AZ
id : 0030
name : FRED FLINTSTONE
address : 246 GRANITE LANE
city : BEDROCK
state : CA
id : 0040
name : JONNY QUEST
address : 31416 SCIENCE AVE
city : PALO ALTO
state : CA
関連
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スライス表記を理解する
-
[解決済み] getitem__ のスライシングの実装
-
[解決済み] バブルソートの宿題
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?