リストや文字列を逆順に並べる

Python

Python の listや文字列を逆順に並べる方法には、下記の2種類があります。

  • 元のlistの順序を保持しない: reverse()
  • 元のlistの順序を保持する: reversed()、リストのインデックス

元のlistの順序を保持しない: reverse()

test_list = [1, 2, 3, 4]
test_list.reverse()

print(test_list)
# [4, 3, 2, 1]

元のlistの順序を保持する: reversed()

reversed() はイテレータを返すので、list() を使用して、リストに変換する必要があります。

test_list = [1, 2, 3, 4]
rev_list = list(reversed(test_list))

print(rev_list)
# [4, 3, 2, 1]
print(test_list)
# [1, 2, 3, 4]

文字列の場合は、for文でイテレータの中身を取り出す必要があります。

test_str = "abc"
reverse = reversed(test_str)

for i in reverse:
    print(i, end="")
    # bac
else:
    print("")

print(test_str)
### abc

また、リストのインデックスを使用しても実現可能です。

test_list = [1, 2, 3]
rev_s = test_list[::-1]

print(test_list)
# 123
print(rev_s)
# 321
test_str = "abc"
rev_s = test_str[::-1]

print(test_str)
# abc
print(rev_s)
# cba

コメント

タイトルとURLをコピーしました