LoginSignup
1
1

More than 3 years have passed since last update.

Pythonでのリスト要素の取得

Posted at

1. 指定要素を取得する。(インデックス指定)

  • 要素番号(インデックス)は0から開始。
  • 負の要素番号は-1から開始。後ろから数えて、指定位置の要素を取得。

$ list = ['A', 'B', 'C', 'D', 'E']

list[0]
# 'A'

list[1]
# 'B'

list[2]
# 'C'

list[-1]
# 'E'

list[-2]
# 'D'

2. リストの一部を取得する。(スライシング)

  • [開始番号:終了番号:ステップ数]と指定。終了番号の要素は含まれない。
  • 開始番号省略時は、最初の要素から取得。
  • 終了番号省略時は、最後の要素まで取得。
  • ステップ数省略時は、1(1個ずつ)が指定。

list = ['A', 'B', 'C', 'D', 'E']

list[3:]
# ['D', 'E']

list[:3]
# ['A', 'B', 'C']

list[::-1]
# ['E', 'D', 'C', 'B', 'A']

list[1:4:2]
# ['B', 'D']

list[4:1:-2]
# ['E', 'C']

3. クエリで取得する。(内包表記)

  • [要素の加工コマンド for 要素名 in リスト if 抽出条件]と指定。if以降は省略可能。
  • 「in」の箇所でenumerate(リスト)を指定すると、各要素を「要素番号, 要素」の組合せで取得。
  • 「in」の箇所でzip(リスト1, リスト2)を指定すると、各要素を「リスト1の要素, リスト2で同位置の要素」の組合せで取得。
  • { }で囲った場合はセットや辞書、( )で囲った場合はジェネレータが返却。

list = ['A', 'B', 'C', 'D', 'E']
list2 = ['F', 'G', 'H', 'I', 'J']

[x.lower() for x in list]
# ['a', 'b', 'c', 'd', 'e']

[x.lower() for x in list if x!='B']
# ['a', 'c', 'd', 'e']

[str(i) + x for i, x in enumerate(list)]
# ['0A', '1B', '2C', '3D', '4E']

[x + y for x, y in zip(list, list2)]
# ['AF', 'BG', 'CH', 'DI', 'EJ']

{x.lower() for x in list}
# {'a', 'b', 'c', 'd', 'e'} ※セット

{x:x.lower() for x in list}
# {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd', 'E': 'e'} ※辞書

(x.lower() for x in list)
# <generator object <genexpr> at ?> ※ジェネレータ

備考

本記事はブログ「雑用エンジニアの技術ノート」からの移行記事です。先のブログは削除予定です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1