すべての組合せまたは配列を反復

11831 ワード

  • 1. :場合によっては、一連の要素のすべての可能な組合せまたは配列を反復したい場合があります.
  • 2. :itertoolsモジュールで提供される関数を使用
  • itertools.permutations():このメソッドのパラメータと1つの要素セットを組み合わせて、ある要素セット内のすべての要素を可能なすべての元祖シーケンスに並べ替え、返します.

  •     >>> items = ['a','b','c','d','e']
        >>> from itertools import permutations
        >>> for per in permutations(items):
                print(per)
        
            
        ('a', 'b', 'c', 'd', 'e')
        ('a', 'b', 'c', 'e', 'd')
        ('a', 'b', 'd', 'c', 'e')
        ('a', 'b', 'd', 'e', 'c')
        ('a', 'b', 'e', 'c', 'd')
        ('a', 'b', 'e', 'd', 'c')
        ('a', 'c', 'b', 'd', 'e')
        ('a', 'c', 'b', 'e', 'd')
        ('a', 'c', 'd', 'b', 'e')
        ('a', 'c', 'd', 'e', 'b')
        ('a', 'c', 'e', 'b', 'd')
        ('a', 'c', 'e', 'd', 'b')
        ('a', 'd', 'b', 'c', 'e')
        ('a', 'd', 'b', 'e', 'c')
        ('a', 'd', 'c', 'b', 'e')
        ('a', 'd', 'c', 'e', 'b')
        ('a', 'd', 'e', 'b', 'c')
        ('a', 'd', 'e', 'c', 'b')
        ('a', 'e', 'b', 'c', 'd')
        ('a', 'e', 'b', 'd', 'c')
        ('a', 'e', 'c', 'b', 'd')
        ('a', 'e', 'c', 'd', 'b')
        ('a', 'e', 'd', 'b', 'c')
        ('a', 'e', 'd', 'c', 'b')
        ('b', 'a', 'c', 'd', 'e')
        ('b', 'a', 'c', 'e', 'd')
        ('b', 'a', 'd', 'c', 'e')
        ('b', 'a', 'd', 'e', 'c')
        ('b', 'a', 'e', 'c', 'd')
        ('b', 'a', 'e', 'd', 'c')
        ('b', 'c', 'a', 'd', 'e')
        ('b', 'c', 'a', 'e', 'd')
        ('b', 'c', 'd', 'a', 'e')
        ('b', 'c', 'd', 'e', 'a')
        ('b', 'c', 'e', 'a', 'd')
        ('b', 'c', 'e', 'd', 'a')
        ('b', 'd', 'a', 'c', 'e')
        ('b', 'd', 'a', 'e', 'c')
        ('b', 'd', 'c', 'a', 'e')
        ('b', 'd', 'c', 'e', 'a')
        ('b', 'd', 'e', 'a', 'c')
        ('b', 'd', 'e', 'c', 'a')
        ('b', 'e', 'a', 'c', 'd')
        ('b', 'e', 'a', 'd', 'c')
        ('b', 'e', 'c', 'a', 'd')
        ('b', 'e', 'c', 'd', 'a')
        ('b', 'e', 'd', 'a', 'c')
        ('b', 'e', 'd', 'c', 'a')
        ('c', 'a', 'b', 'd', 'e')
        ('c', 'a', 'b', 'e', 'd')
        ('c', 'a', 'd', 'b', 'e')
        ('c', 'a', 'd', 'e', 'b')
        ('c', 'a', 'e', 'b', 'd')
        ('c', 'a', 'e', 'd', 'b')
        ('c', 'b', 'a', 'd', 'e')
        ('c', 'b', 'a', 'e', 'd')
        ('c', 'b', 'd', 'a', 'e')
        ('c', 'b', 'd', 'e', 'a')
        ('c', 'b', 'e', 'a', 'd')
        ('c', 'b', 'e', 'd', 'a')
        ('c', 'd', 'a', 'b', 'e')
        ('c', 'd', 'a', 'e', 'b')
        ('c', 'd', 'b', 'a', 'e')
        ('c', 'd', 'b', 'e', 'a')
        ('c', 'd', 'e', 'a', 'b')
        ('c', 'd', 'e', 'b', 'a')
        ('c', 'e', 'a', 'b', 'd')
        ('c', 'e', 'a', 'd', 'b')
        ('c', 'e', 'b', 'a', 'd')
        ('c', 'e', 'b', 'd', 'a')
        ('c', 'e', 'd', 'a', 'b')
        ('c', 'e', 'd', 'b', 'a')
        ('d', 'a', 'b', 'c', 'e')
        ('d', 'a', 'b', 'e', 'c')
        ('d', 'a', 'c', 'b', 'e')
        ('d', 'a', 'c', 'e', 'b')
        ('d', 'a', 'e', 'b', 'c')
        ('d', 'a', 'e', 'c', 'b')
        ('d', 'b', 'a', 'c', 'e')
        ('d', 'b', 'a', 'e', 'c')
        ('d', 'b', 'c', 'a', 'e')
        ('d', 'b', 'c', 'e', 'a')
        ('d', 'b', 'e', 'a', 'c')
        ('d', 'b', 'e', 'c', 'a')
        ('d', 'c', 'a', 'b', 'e')
        ('d', 'c', 'a', 'e', 'b')
        ('d', 'c', 'b', 'a', 'e')
        ('d', 'c', 'b', 'e', 'a')
        ('d', 'c', 'e', 'a', 'b')
        ('d', 'c', 'e', 'b', 'a')
        ('d', 'e', 'a', 'b', 'c')
        ('d', 'e', 'a', 'c', 'b')
        ('d', 'e', 'b', 'a', 'c')
        ('d', 'e', 'b', 'c', 'a')
        ('d', 'e', 'c', 'a', 'b')
        ('d', 'e', 'c', 'b', 'a')
        ('e', 'a', 'b', 'c', 'd')
        ('e', 'a', 'b', 'd', 'c')
        ('e', 'a', 'c', 'b', 'd')
        ('e', 'a', 'c', 'd', 'b')
        ('e', 'a', 'd', 'b', 'c')
        ('e', 'a', 'd', 'c', 'b')
        ('e', 'b', 'a', 'c', 'd')
        ('e', 'b', 'a', 'd', 'c')
        ('e', 'b', 'c', 'a', 'd')
        ('e', 'b', 'c', 'd', 'a')
        ('e', 'b', 'd', 'a', 'c')
        ('e', 'b', 'd', 'c', 'a')
        ('e', 'c', 'a', 'b', 'd')
        ('e', 'c', 'a', 'd', 'b')
        ('e', 'c', 'b', 'a', 'd')
        ('e', 'c', 'b', 'd', 'a')
        ('e', 'c', 'd', 'a', 'b')
        ('e', 'c', 'd', 'b', 'a')
        ('e', 'd', 'a', 'b', 'c')
        ('e', 'd', 'a', 'c', 'b')
        ('e', 'd', 'b', 'a', 'c')
        ('e', 'd', 'b', 'c', 'a')
        ('e', 'd', 'c', 'a', 'b')
        ('e', 'd', 'c', 'b', 'a')
        >>> 
        ```
    * 3.`    2`:
     *           ,                ;
     
    ```python
     >>> for per in permutations(items, 2):#2   
                print(per)
    
            
        ('a', 'b')
        ('a', 'c')
        ('a', 'd')
        ('a', 'e')
        ('b', 'a')
        ('b', 'c')
        ('b', 'd')
        ('b', 'e')
        ('c', 'a')
        ('c', 'b')
        ('c', 'd')
        ('c', 'e')
        ('d', 'a')
        ('d', 'b')
        ('d', 'c')
        ('d', 'e')
        ('e', 'a')
        ('e', 'b')
        ('e', 'c')
        ('e', 'd')
        ```
    
    * 4.`itertools.combinations()`:
    
        *                   
    
    ```python
        >>> from itertools import combinations
        >>> for com in combinations(items, 3):
                print(com)
        
            
        ('a', 'b', 'c')
        ('a', 'b', 'd')
        ('a', 'b', 'e')
        ('a', 'c', 'd')
        ('a', 'c', 'e')
        ('a', 'd', 'e')
        ('b', 'c', 'd')
        ('b', 'c', 'e')
        ('b', 'd', 'e')
        ('c', 'd', 'e')
        
        >>> for com in combinations(items, 2):
                print(com)
    
        
        ('a', 'b')
        ('a', 'c')
        ('a', 'd')
        ('a', 'e')
        ('b', 'c')
        ('b', 'd')
        ('b', 'e')
        ('c', 'd')
        ('c', 'e')
        ('d', 'e')
        
        >>> for com in combinations(items, 1):
        print(com)
    
        
        ('a',)
        ('b',)
        ('c',)
        ('d',)
        ('e',)
           ```
        
    * 5.`  `:
        * `combinations()`:          ,    `('a', 'd')` `('d', 'a')`        。
     
    * 6.`itertools.combinations_with_replacement()`:
        *            
    
    ```python
        >>> from itertools import combinations_with_replacement
        >>> for com in combinations_with_replacement(items,2):
                print(com)
        
            
        ('a', 'a')
        ('a', 'b')
        ('a', 'c')
        ('a', 'd')
        ('a', 'e')
        ('b', 'b')
        ('b', 'c')
        ('b', 'd')
        ('b', 'e')
        ('c', 'c')
        ('c', 'd')
        ('c', 'e')
        ('d', 'd')
        ('d', 'e')
        ('e', 'e')
    >>> 
        ```