python#1 Pythonの重複可能オブジェクトについて

9447 ワード

シーケンスオブジェクトと重複可能オブジェクトの違い

  • 反復可能なオブジェクトは、シーケンスを含む親概念と見なすことができる.
  • リスト、tuple、range、文字列はシーケンスオブジェクトです.また、ディクシャナとセットは重複可能なオブジェクトですが、シーケンスオブジェクトではありません.
  • シーケンスオブジェクトは、dickshernerおよびsetに要素(キー)の順序がないため、要素の順序が固定され、連続的(シーケンス)であることを要求する.
  • Iterableオブジェクト

  • iterableオブジェクトは重複可能なオブジェクトであり、代表的なiterableオブジェクトはリスト、str、tupleなどのシーケンスオブジェクトとdict、setなどの非シーケンスオブジェクト、バイト、rangeなどがある.
  • An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as list, str, and tuple) and some non-sequence types like dict, file objects, and objects of any classes you define with an iter() method or with a getitem() method that implements Sequence semantics.
    Iterables can be used in a for loop and in many other places where a sequence is needed (zip(), map(), …). When an iterable object is passed as an argument to the built-in function iter(), it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to call iter() or deal with iterator objects yourself. The for statement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator.
    https://docs.python.org/3/glossary.html#term-iterable
  • iterableオブジェクトを判別するために、このオブジェクトは集合である.Iterableに属するインスタンスであることを確認すればよい.
  • isinstance関数は、最初の入力値が2番目の入力クラスのインスタンスである場合、Trueを返します.そこで,
  • を探索する.
     >>> import collections
        
      # iterable 한 타입
      >>> var_list = [1, 3, 5, 7]
      >>> isinstance(var_list, collections.Iterable)
      True
      >>> var_dict = {"a": 1, "b":1}
      >>> isinstance(var_dict, collections.Iterable)
      True
      >>> var_set = {1, 3}
      >>> isinstance(var_set, collections.Iterable)
      True
      >>> var_str = "abc"
      >>> isinstance(var_str, collections.Iterable)
      True
      >>> var_bytes = b'abcdef'
      >>> isinstance(var_bytes, collections.Iterable)
      True
      >>> var_tuple = (1, 3, 5, 7)
      >>> isinstance(var_tuple, collections.Iterable)
      True
      >>> var_range = range(0,5)
      >>> isinstance(var_range, collections.Iterable)
      True
    
      # iterable하지 않은 타입
      >>> var_int = 932
      >>> isinstance(var_int, collections.Iterable)
      False
      >>> var_float = 10.2
      >>> isinstance(var_float, collections.Iterable)
      False
      >>> var_none = None
      >>> isinstance(var_none, collections.Iterable)
      False
    このような結果が得られた.リンクテキスト