Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ABC-->ABC、CAB、BCA只有顺序关系,而不是真正的itertools排列_Python_Itertools - Fatal编程技术网

Python ABC-->ABC、CAB、BCA只有顺序关系,而不是真正的itertools排列

Python ABC-->ABC、CAB、BCA只有顺序关系,而不是真正的itertools排列,python,itertools,Python,Itertools,我正在尝试编写一个简单的Python脚本,能够实现以下功能: 用户输入一串字母,代码按以下方式返回组合: ABC ----> ABC, CAB, BCA. 在这种情况下,相邻字母保持不变,但最后一个字母移到开头。我一直在尝试itertools,但组合和排列并不是我想要的。任何帮助都将不胜感激 您正在寻找旋转,而不是排列 我能做到 >>> d = deque('ABC') >>> ''.join(d) >>> 'ABC' >&g

我正在尝试编写一个简单的Python脚本,能够实现以下功能:

用户输入一串字母,代码按以下方式返回组合:

ABC ----> ABC, CAB, BCA. 
在这种情况下,相邻字母保持不变,但最后一个字母移到开头。我一直在尝试itertools,但组合和排列并不是我想要的。任何帮助都将不胜感激

您正在寻找旋转,而不是排列

我能做到

>>> d = deque('ABC')
>>> ''.join(d)
>>> 'ABC'
>>> d.rotate(1)
>>> ''.join(d)
>>> 'CAB'
>>> d.rotate(1)
>>> ''.join(d)
>>> 'BCA'
如果要在列表中存储所有旋转,可以执行以下操作

>>> d = deque('ABC')
>>> result = [''.join(d)]
>>> for _ in range(len(d) - 1):
...:    d.rotate(1)
...:    result.append(''.join(d))
...:    
>>> result
>>> ['ABC', 'CAB', 'BCA']
您应该能够自己处理用户输入内容。

您正在寻找的是旋转,而不是排列

我能做到

>>> d = deque('ABC')
>>> ''.join(d)
>>> 'ABC'
>>> d.rotate(1)
>>> ''.join(d)
>>> 'CAB'
>>> d.rotate(1)
>>> ''.join(d)
>>> 'BCA'
如果要在列表中存储所有旋转,可以执行以下操作

>>> d = deque('ABC')
>>> result = [''.join(d)]
>>> for _ in range(len(d) - 1):
...:    d.rotate(1)
...:    result.append(''.join(d))
...:    
>>> result
>>> ['ABC', 'CAB', 'BCA']

您应该能够自己处理用户输入的内容。

我不认为它有直接的功能,但生成一个单行代码相当简单

x='abcde'
result = [x[-i:]+x[:-i] for i in range(len(x))]
# result will be ['abcde', 'eabcd', 'deabc', 'cdeab', 'bcdea']

我不认为它有一个直接的函数,但是生成一个单行代码相当简单

x='abcde'
result = [x[-i:]+x[:-i] for i in range(len(x))]
# result will be ['abcde', 'eabcd', 'deabc', 'cdeab', 'bcdea']

s=s[-1]+s[:-1]?s=s[-1]+s[:-1]?见也非常感谢。我是Python新手,非常感谢您的投入和帮助!我也非常感谢你。我是Python新手,非常感谢您的投入和帮助!非常感谢你!很好地工作。正如在这个问题中所问的,这对常规字符串很有效。我有一个新问题,字符串现在被分隔,我想在这里拆分它们。我想做的是:A,B,C------>'A,B,C''C,A,B''B,C,A''oneliner可用于任何iterable,因此最简单的方法是使用所需的分隔符拆分字符串。x='a,b,c,d,e''split','非常感谢!很好地工作。正如在这个问题中所问的,这对常规字符串很有效。我有一个新问题,字符串现在被分隔,我想在这里拆分它们。我想做的是:A,B,C------>'A,B,C''C,A,B''B,C,A''oneliner可用于任何iterable,因此最简单的方法是使用所需的分隔符拆分字符串。x='a,b,c,d,e''split','