<p>您可以使用<code>list.insert</code>来帮助进行左移和右移</p>
<p><code>list.pop</code>,从原始列表中删除元素并返回它<code>list.insert</code>将返回的元素添加到给定索引处的列表中(本例中为0或-1)。注意:此操作已就位</p>
<pre><code>#Left shift
mylist = ['apples', 'guitar', 'shirt']
mylist.insert(-1,mylist.pop(0))
mylist
### ['guitar', 'apples', 'shirt']
</code></pre>
<pre><code>#Right shift
mylist = ['apples', 'guitar', 'shirt']
mylist.insert(0,mylist.pop(-1))
mylist
### ['shirt', 'apples', 'guitar']
</code></pre>
<hr/>
<p>更好的方法是使用<code>collections.deque</code>。这将允许您使用多个班次,并且还可以使用其他一些整洁的队列功能</p>
<pre><code>from collections import deque
mylist = ['apples', 'guitar', 'shirt']
q = deque(mylist)
q.rotate(1) # Right shift ['shirt', 'apples', 'guitar']
q.rotate(-1) # Left shift ['guitar', 'shirt', 'apples']
q.rotate(3) #Right shift of 3 ['apples', 'guitar', 'shirt']
</code></pre>
<hr/>
<p><strong>编辑:</strong>根据您的评论,您正在尝试获得排列-</p>
<pre><code>from itertools import product
[i for i in product(l, repeat=2) if len(set(i))>1]
</code></pre>
<pre><code>[('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]
</code></pre>
<p>或</p>
<pre><code>out = []
for i in l:
for j in l:
if len(set([i,j]))>1:
print(i,j)
</code></pre>
<pre><code>a b
a c
b a
b c
c a
c b
</code></pre>