Làm thế nào để bạn lật các mục trong danh sách trong python?

Trong bài viết này, chúng ta sẽ học cách xoay một danh sách trong Python. Chúng tôi cũng sẽ sử dụng một số chức năng tích hợp, cách tiếp cận đơn giản và một số mã tùy chỉnh. Trước tiên chúng ta hãy xem nhanh danh sách trong Python là gì

Danh sách Python

Python có một kiểu dữ liệu tích hợp được gọi là danh sách. Nó giống như một tập hợp các mảng với các phương pháp khác nhau. Dữ liệu bên trong danh sách có thể thuộc bất kỳ loại nào, chẳng hạn như số nguyên, chuỗi hoặc giá trị float hoặc thậm chí là loại danh sách. Danh sách sử dụng các giá trị được phân tách bằng dấu phẩy trong dấu ngoặc vuông để lưu trữ dữ liệu. Danh sách có thể được xác định bằng cách sử dụng bất kỳ tên biến nào và sau đó gán các giá trị khác nhau cho danh sách trong dấu ngoặc vuông. Danh sách được sắp xếp, có thể thay đổi và cho phép các giá trị trùng lặp

list1 = ["Ram", "Arun", "Kiran"]
list2 = [16, 78, 32, 67]
list3 = ["apple", "mango", 16, "cherry", 3.4]

Xoay danh sách có nghĩa là đẩy và kéo các phần tử từ cả hai đầu của danh sách. Trong phép quay trái, mỗi phần tử của danh sách được dịch chuyển sang bên trái của nó một vị trí và phần tử đầu tiên được thêm vào cuối danh sách. Tương tự, trong phép quay phải, mỗi phần tử của danh sách được dịch chuyển sang bên phải của nó một vị trí và phần tử cuối cùng được thêm vào đầu danh sách. Quá trình này được thực hiện theo một số lần xác định. Bây giờ, chúng ta sẽ thảo luận về các phương pháp khác nhau để xoay danh sách. Các phương thức này có thể thực hiện cả Xoay trái cũng như Xoay phải bằng cách lấy số lần xoay làm đầu vào

Thí dụ. Xoay một danh sách bằng cách sử dụng kỹ thuật cắt lát

Phương pháp này chỉ đơn giản là xoay một danh sách trong mã một dòng. Đây là phương pháp chung và hiệu quả nhất để đạt được vòng quay của danh sách. Nó thực hiện thao tác cắt lát bằng cách lấy số vòng quay. Trong trường hợp này, nó xoay danh sách l1, 3 dấu cách sang bên phải và bên trái. Nó nối phần được cắt lát sau của danh sách với phần được cắt lát ban đầu của danh sách. Bạn có thể cung cấp bất kỳ số vòng quay nào theo nhu cầu

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 


Danh sách gốc. [1, 4, 6, 7, 2]
Xoay trái Danh sách 3. [7, 2, 1, 4, 6]
Xoay phải Danh sách 3. [1, 4, 6, 7, 2]

Thí dụ. Xoay một Danh sách bằng cách sử dụng Danh sách Hiểu

Phương pháp này được thực hiện trong một dòng bằng cách sử dụng Danh sách hiểu. Trong phương pháp này, chúng tôi chỉ gán lại chỉ mục cho từng giá trị cho một vị trí cụ thể sau khi xoay. Chỉ cần thay thế 3 bằng bất kỳ số vòng quay nào bạn muốn

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 


Danh sách gốc. [1, 4, 6, 7, 2]
Xoay trái Danh sách 3. [7, 2, 1, 4, 6]
Xoay phải Danh sách 3. [1, 4, 6, 7, 2]

Thí dụ. Xoay Danh sách bằng Mô-đun Bộ sưu tập

Phương thức này nhập

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
9 từ mô-đun
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
0 của Python. Lớp
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
1 cung cấp hàm
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
0 để thực hiện Xoay danh sách. Đây cũng là một cách hiệu quả để xoay danh sách vì nó nhanh hơn kỹ thuật cắt lát. Nó được tối ưu hóa để kéo và đẩy ở cả hai đầu

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
1 - Nó lấy một danh sách làm đối số và chuyển đổi nó thành một đối tượng deque

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
0 - Nó được áp dụng cho đối tượng deque và lấy số vòng quay làm đối số. Nó chỉ đơn giản là xoay danh sách

Chỉ mục tiêu cực được cung cấp để thực hiện xoay trái trong khi chỉ mục tích cực được đưa ra để thực hiện xoay phải

from collections import deque 

#input list
l1 = [1, 4, 6, 7, 2] 
print ["Original List : " + str[l1]] 

#left rotate by 3 
l1 = deque[l1] 
l1.rotate[-3] 
l1 = list[l1] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = deque[l1] 
l1.rotate[3] 
l1 = list[l1] 
print ["Right rotation of List by 3 : " + str[l1]] 


Danh sách gốc. [1, 4, 6, 7, 2]
Xoay trái Danh sách 3. [7, 2, 1, 4, 6]
Xoay phải Danh sách 3. [1, 4, 6, 7, 2]

Thí dụ. Xoay phải danh sách bằng cách nối các phần tử vào danh sách mới

Phương pháp này làm tăng độ phức tạp không gian của chương trình. Phương pháp này tạo một danh sách trống và lưu danh sách đã sửa đổi vào một danh sách mới. Nó hoạt động tương tự như hiểu danh sách. Nó lặp lại danh sách đầu tiên từng cái một và sau đó đặt các phần tử vào các vị trí phù hợp trong danh sách thứ hai bằng cách sử dụng hàm

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
3

#number of rotations
num = 3
l1 = [1, 2, 3, 4, 5, 6] 
l2 = [] 

# Will add values from n to the new list 
for ele in range[len[l1] - num, len[l1]]:
    l2.append[l1[ele]]
# Will add the values before n to the end of new list
for ele in range[0, len[l1] - num]:
    l2.append[l1[ele]] 

print["Right rotation of List by 3 : " + str[l2]] 


Xoay phải Danh sách theo 3. [4, 5, 6, 1, 2, 3]

Thí dụ. Xoay phải danh sách bằng len[] và Kỹ thuật cắt lát

Phương pháp này cũng liên quan đến kỹ thuật Slicing nhưng cùng với chức năng

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
4

#number of rotations
num = 3

#input list
l1 = [1, 2, 3, 4, 5, 6] 

l1 = [l1[len[l1] - num:len[l1]] + l1[0:len[l1] - num]] 

print["Right rotation of List by 3 : " + str[l1]] 


Xoay phải Danh sách theo 3. [4, 5, 6, 1, 2, 3]

Thí dụ. Xoay Danh sách bằng Mô-đun NumPy

Mô-đun Numpy của Python cung cấp hàm roll[] tích hợp để thực hiện phép quay trên một mảng. Đầu tiên, nó tạo một mảng bằng cách chuyển một dải [giá trị đầu, giá trị cuối [không bao gồm]] bằng hàm

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
5. Sau đó, mảng và số phép quay được truyền dưới dạng đối số cho hàm
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
6

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
2


Mảng gốc. [1 2 3 4 5 6 7 8 9]
Xoay phải 3. [7 8 9 1 2 3 4 5 6]
Xoay trái 3. [4 5 6 7 8 9 1 2 3]

Sự kết luận

Trong bài viết này, chúng ta đã học cách xoay danh sách bằng cách sử dụng một số hàm có sẵn như

#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
1,
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
4,
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = l1[3:] + l1[:3] 
print["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3
l1 = l1[-3:] + l1[:-3] 
print["Right rotation of List by 3 : " + str[l1]] 
3,
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
0 và cũng sử dụng kỹ thuật
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
1 và
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
2. Chúng tôi cũng đã sử dụng một số mã tùy chỉnh. Chúng tôi đã thảo luận rằng trong số tất cả các phương pháp,
#input list
l1 = [1, 4, 6, 7, 2] 
print["Original List : " + str[l1]] 

#left rotate by 3 
l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Left rotation of List by 3 : " + str[l1]] 

#right rotate by 3 
l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] 
print ["Right rotation of List by 3 : " + str[l1]] 
3 là phương pháp hiệu quả nhất để thực hiện thao tác xoay vòng danh sách. Tất cả các phương thức này có Độ phức tạp thời gian bằng 0[n] do một lần lặp duy nhất trên các phần tử của danh sách

Phương pháp nào có thể được sử dụng để lật thứ tự các phần tử trong danh sách?

Phương thức reverse[] đảo ngược các phần tử của danh sách.

Chức năng danh sách đảo ngược trong Python là gì?

Phương thức reverse[] đảo ngược thứ tự sắp xếp của các phần tử .

Chủ Đề