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をコピーしました