Python Itertools.Permutations()

前端 未结 4 1693
离开以前
离开以前 2020-12-09 07:47

Why does itertools.permutations() return a list of characters or digits for each permutation, instead of just returning a string?

For example:

>&g         


        
相关标签:
4条回答
  • 2020-12-09 08:24

    Because it expects an iterable as a parameter and doesn't know, it's a string. The parameter is described in the docs.

    http://docs.python.org/library/itertools.html#itertools.permutations

    0 讨论(0)
  • 2020-12-09 08:25

    Perumatation can be done for strings and list also, below is the example..

    x = [1,2,3]
    

    if you need to do permutation the above list

    print(list(itertools.permutations(x, 2)))
    
    # the above code will give the below..
    # [(1,2),(1,3),(2,1)(2,3),(3,1),(3,2)]
    
    0 讨论(0)
  • 2020-12-09 08:34

    I have not tried, but most likely should work

    comb = itertools.permutations("1234",4)
    for x in comb: 
      ''.join(x)    
    
    0 讨论(0)
  • 2020-12-09 08:42

    itertools.permutations() simply works this way. It takes an arbitrary iterable as an argument, and always returns an iterator yielding tuples. It doesn't (and shouldn't) special-case strings. To get a list of strings, you can always join the tuples yourself:

    list(map("".join, itertools.permutations('1234')))
    
    0 讨论(0)
提交回复
热议问题