記事の内容
この記事では、「数字と文字列の数字」を探知する方法を説明します。
具体的には、「isdigit」を紹介します。
なお、このコードはPythonの3系で書かれています。
isdigit
対象は、このような配列です。[1, "a", 2, "b", "c", 3, "4", "5", "6"]
数字と、文字列の数字が混じっています。
ここから、1から6までの数字を取り出します。
3つの方法を紹介しています。
- filterとlambda式
- リスト内包表記
- forループ
# coding: utf-8 | |
arr = [1, "a", 2, "b", "c", 3, "4", "5", "6"] | |
def is_int(v): | |
if type(v) is int: | |
return v | |
elif type(v) is str and v.isdigit(): | |
return v | |
# forループ | |
# for loop | |
string_list = [] | |
for v in arr: | |
if is_int(v): | |
string_list.append(v) | |
cast_list = list(map(int, string_list)) | |
cast_list.sort(reverse=True) | |
print(cast_list) | |
# filterと関数 | |
# filter and function | |
string_list = list(filter(is_int, arr)) | |
print(string_list) | |
# リスト内包表記 | |
# list Inclusive | |
string_list = [v for v in arr if is_int(v)] | |
print(string_list) |