2022年5月7日土曜日

【組み込み関数】reversed、スライシングによるイテラブルオブジェクトの反転

 組み込み関数reversedはリストやタプルなどのイテラブルオブジェクトの要素の順番を逆にしたイテレーターを生成する。生成したイテレーターをイテラブルオブジェクトに変換することでイテラブルオブジェクトが反転する。また、スライシングでstepを-1とすることで後ろから要素が取得され、イテラブルオブジェクトの反転ができる。




1. reversedによるリスト、タプルの反転

 reversedはイテラブルオブジェクトの要素の順番を逆にしたイテレータを生成する。

a = [1, 2, 3]

print(reversed(a))

 実行結果

<list_reverseiterator object at 0x000001883EDBDF00>

 逆順のリストやタプルにする場合はlisttuple関数でイテラブルオブジェクトに変換する。

a = [1, 2, 3]

print(list(reversed(a)))

 実行結果

[3, 2, 1]


a = (1, 2, 3)

print(tuple(reversed(a)))

 実行結果

(3, 2, 1)


 元のリストやタプルは維持される。

a = [1, 2, 3]

print(list(reversed(a)))
print(a)

 実行結果

[3, 2, 1]
[1, 2, 3]


2. reversedによる文字列の反転

 文字列を反転させる場合、reversedで反転したイテレーターをリスト化する。

a = '123'

print(list(reversed(a)))

 実行結果

['3', '2', '1']


 このリストを文字列化するにはjoinを使う。

a = '123'

print(''.join(list(reversed(a))))

 実行結果

321


3. スライシングによるイテラブルオブジェクトの反転

 スライシングでstepに-1を指定すると「後ろから順に」イテラブルオブジェクトの要素を取得できる。これによりリスト、タプル、文字列を反転できる。

a = [1, 2, 3]

print(a[::-1])

 実行結果

['3', '2', '1']


a = (1, 2, 3)

print(a[::-1])

 実行結果

(3, 2, 1)


a = '123'

print(a[::-1])

 実行結果

321


4. リファレンス

Python 標準ライブラリ > 組み込み関数 > reversed(seq)

使用したバージョン:Python 3.10.4

0 件のコメント:

コメントを投稿