[解決済み] リストのすべての要素が同じ型であるかどうかをチェックする
2023-01-12 07:11:07
質問
リストの要素が同じ型であるかどうか、可能であればすべての要素を個別にチェックせずに確認するにはどうしたらよいでしょうか。
例えば、このリストのすべての要素が整数であることをチェックする関数を持ちたいと思います(これは明らかに誤りです)。
x = [1, 2.5, 'a']
def checkIntegers(x):
# return True if all elements are integers, False otherwise
どのように解決するのですか?
以下のように
all
と組み合わせて
isinstance
:
all(isinstance(x, int) for x in lst)
複数のタイプをチェックすることもできます。
isinstance
で複数の型をチェックすることもできます。
all(isinstance(x, (int, long)) for x in lst)
継承されたクラスも拾ってくれるわけではありませんが、例えば
class MyInt(int):
pass
print(isinstance(MyInt('3'),int)) #True
もし、あなたが
が必要な場合
を整数だけに制限する場合は
all(type(x) is int for x in lst)
. しかし、これは
very
まれなシナリオです。
これで書ける楽しい関数は、他のすべての要素が同じ型である場合に、シーケンスの最初の要素の型を返すものです。
def homogeneous_type(seq):
iseq = iter(seq)
first_type = type(next(iseq))
return first_type if all( (type(x) is first_type) for x in iseq ) else False
これは任意のイテラブルに対して動作しますが、その過程で "イテレータ" を消費します。
共通の基の集合を返す、同じようなもう一つの楽しい関数です。
import inspect
def common_bases(seq):
iseq = iter(seq)
bases = set(inspect.getmro(type(next(iseq))))
for item in iseq:
bases = bases.intersection(inspect.getmro(type(item)))
if not bases:
break
return bases
関連
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?