Hướng dẫn how do you rotate a circular list in python? - làm cách nào để xoay một danh sách tròn trong python?

106

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Có thể trùng lặp: Cách hiệu quả để chuyển danh sách trong Python
Efficient way to shift a list in python

Tôi muốn xoay một danh sách python bằng một số lượng mục tùy ý ở bên phải hoặc bên trái [cái sau sử dụng đối số tiêu cực].

Một cái gì đó như thế này:

>>> l = [1,2,3,4]
>>> l.rotate[0]
[1,2,3,4]
>>> l.rotate[1]
[4,1,2,3]
>>> l.rotate[-1]
[2,3,4,1]
>>> l.rotate[4]
[1,2,3,4]

Làm thế nào điều này có thể được thực hiện?

hỏi ngày 26 tháng 2 năm 2012 lúc 22:27Feb 26, 2012 at 22:27

Drew Noakesdrew NoakesDrew Noakes

290K161 Huy hiệu vàng665 Huy hiệu bạc729 Huy hiệu Đồng161 gold badges665 silver badges729 bronze badges

10

def rotate[l, n]:
    return l[-n:] + l[:-n]

Hướng thông thường hơn:

def rotate[l, n]:
    return l[n:] + l[:n]

Example:

example_list = [1, 2, 3, 4, 5]

rotate[example_list, 2]
# [3, 4, 5, 1, 2]

Các đối số cho

def rotate[l, n]:
    return l[-n:] + l[:-n]
0 là một danh sách và một số nguyên biểu thị sự thay đổi. Hàm tạo ra hai danh sách mới bằng cách sử dụng cắt và trả về việc kết nối các danh sách này. Hàm
def rotate[l, n]:
    return l[-n:] + l[:-n]
0 không sửa đổi danh sách đầu vào.

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 22:30Feb 26, 2012 at 22:30

6

Nếu có thể, bạn có thể sử dụng

def rotate[l, n]:
    return l[-n:] + l[:-n]
2 làm giải pháp:

import collections

d = collections.deque[[1,2,3,4,5]]
d.rotate[3]

print d
>>> deque[[3, 4, 5, 1, 2]]

Như một phần thưởng, tôi hy vọng nó sẽ nhanh hơn danh sách được xây dựng.

Matt

20K17 Huy hiệu vàng60 Huy hiệu bạc106 Huy hiệu đồng17 gold badges60 silver badges106 bronze badges

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 22:32Feb 26, 2012 at 22:32

Tomasztomasztomasz

Huy hiệu vàng 12k341 Huy hiệu bạc54 Huy hiệu đồng3 gold badges41 silver badges54 bronze badges

3

Hàm sau sẽ xoay danh sách

def rotate[l, n]:
    return l[-n:] + l[:-n]
3,
def rotate[l, n]:
    return l[-n:] + l[:-n]
4 không gian ở bên phải:

def rotate[l, x]:
  return l[-x:] + l[:-x]

Lưu ý rằng điều này sẽ chỉ trả về danh sách ban đầu nếu

def rotate[l, n]:
    return l[-n:] + l[:-n]
4 nằm ngoài phạm vi
def rotate[l, n]:
    return l[-n:] + l[:-n]
6. Để làm cho nó hoạt động cho tất cả các giá trị của
def rotate[l, n]:
    return l[-n:] + l[:-n]
4, sử dụng:

def rotate[li, x]:
  return li[-x % len[li]:] + li[:-x % len[li]]

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 22:36Feb 26, 2012 at 22:36

Aaron Dufouraaron DufourAaron Dufour

Huy hiệu vàng 16,9K11 gold badge48 silver badges68 bronze badges

6

>>> l=[1,2,3,4]
>>> l[1:]+l[:1]
[2, 3, 4, 1]
>>> l=[1,2,3,4]
>>> l[2:]+l[:2]
[3, 4, 1, 2]
>>> l[-1:]+l[:-1]
[4, 1, 2, 3]

Một vòng quay chung

def rotate[l, n]:
    return l[-n:] + l[:-n]
8 sang trái [Y dương trong cuộc gọi đến ____10] hoặc phải [âm y] sau đó:

________số 8

Nếu bạn muốn hướng xoay giống như ví dụ của bạn, chỉ cần phủ nhận

def rotate[l, n]:
    return l[n:] + l[:n]
0 trong vòng quay.

def rotate[l, y=1]:
   if len[l] == 0:
      return l
   y = -y % len[l]     # flip rotation direction

   return l[y:] + l[:y]

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 22:44Feb 26, 2012 at 22:44

Sói sóithe wolf

33K12 Huy hiệu vàng53 Huy hiệu bạc71 Huy hiệu đồng12 gold badges53 silver badges71 bronze badges

Làm thế nào để bạn xoay một danh sách trong Python theo chu kỳ?

Bước 1: Phần tử mảng đầu vào. Step 2: Store the last element in a variable say x. Step 3: Shift all elements one position ahead. Step 4: Replace first element of array with x.

Làm thế nào để bạn xoay một danh sách liên kết tròn?

Để xoay danh sách được liên kết, chúng ta cần thay đổi con trỏ tiếp theo của nút KTH thành NULL, con trỏ tiếp theo của nút cuối cùng sẽ trỏ đến nút đầu trước đó và cuối cùng, thay đổi đầu thành nút [K+1].Vì vậy, chúng ta cần giữ ba nút: nút KTH, [k+1] nút và nút cuối cùng.change the next pointer of kth node to NULL, the next pointer of the last node should point to the previous head node, and finally, change the head to [k+1]th node. So we need to get hold of three nodes: kth node, [k+1]th node, and last node.

Làm thế nào để bạn thay đổi định hướng của một danh sách trong Python?

Trong Python, cách dễ nhất để xoay các mục trong danh sách là với các hàm python pop [], chèn [] và append [].Bạn cũng có thể sử dụng cấu trúc dữ liệu deque [] từ mô -đun Bộ sưu tập Python để xoay danh sách.Bạn cũng có thể sử dụng Danh sách cắt để xoay danh sách về phía trước hoặc lùi trong Python.Python list pop[], insert[], and append[] functions. You can also use the deque[] data structure from the Python collections module to rotate a list. You can also use list slicing to rotate a list forward or backwards in Python.

Có một lệnh xoay trong Python?

Chức năng xoay [] được sử dụng để xoay hình ảnh bằng một góc trong Python..

Bài Viết Liên Quan

Chủ Đề