Python リストに格納した英数字の中から数値のみを取り出す方法

まくまく
まくまく
リストに格納した英数字の中から数値のみを取り出してみようと思います。

先日の記事「Python Matplotlib / 9つの株価データから複数のグラフを作成してみた」では、stooqから取得した株価データを使用しています。

証券コードを以下のように記載して9つの銘柄のデータを取得しました。

stock = ['^NKX','TPX','9983.JP','6758.JP','8035.JP','4004.JP','9755.JP','8002.JP','3038.JP']

このリストに格納した英数字の中から、証券コードのみを取り出してみましょう。

証券コードの後ろに「.JP」と付いているので、頭の4桁を取り出せば良さそうですが、中には「^NKX(日経平均)」や「TPX(TOPIX)」などのコードもあります。

このため、記載されているのが数値なのかどうかの判別、もし数値であれば頭の4桁の数値を取り出すという手順を踏むことになります。

書いたのはこちら。

stock = ['^NKX','TPX','9983.JP','6758.JP','8035.JP','4004.JP','9755.JP','8002.JP','3038.JP']

for i, s in enumerate(stock):
    if (any(s.isdigit() for s in stock[i])) == True:
        print(stock[i][0:4])
    else:
        pass

出力

9983
6758
8035
4004
9755
8002
3038

for文、numerate関数、any関数、if文などを使用して証券コードの数値のみを抽出することができました。

else:
        print(stock[i])

最後のelseをこのようにすると、「^NKX」や「TPX」も出力されるようになります。

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