Python: manipulating list in place
本问题已经有最佳答案,请猛点这里访问。
作为编程的初学者,我尝试着用Python来实现这一点。我想要有一个简单的函数,它以一个列表为参数,返回另一个列表,该列表只是原始列表旋转一次(所以
我知道这个
1 2 3 | def rotate(list): list.append(list[0]) list.remove(list[0]) |
将在适当的位置更改列表(并且不返回任何列表)。
但是这一个
1 2 3 4 5 | def rotate_2(list): temp = list temp.append(temp[0]) temp.remove(temp[0]) return temp |
还可以在适当的位置更改原始列表(同时返回所需的列表)。
第三个呢
1 2 3 4 5 | def rotate_3(list): temp = [x for x in list] temp.append(temp[0]) temp.remove(temp[0]) return temp |
给出所需的结果,即返回一个新列表,同时保持原始列表不变。
我不明白
在
在
1 | temp = list[:] |
我个人将写下以下函数:
1 2 | def rotate_4(l): return l[1:] + [l[0]] |
这将使用切片和列表连接。
注意,我已经将