Danh sách để thiết lập mà không thay đổi thứ tự python

Bài đăng này sẽ thảo luận về cách xóa các bản sao khỏi danh sách trong Python trong khi vẫn giữ nguyên thứ tự ban đầu của các phần tử

Nếu thông tin đặt hàng không bắt buộc, bạn chỉ cần sử dụng một bộ không cho phép trùng lặp. Điều này loại bỏ các bản sao, nhưng thứ tự ban đầu của các phần tử không được duy trì vì các bộ là bộ sưu tập không có thứ tự

1

2

3

4

5

6

7

if __name__ == '__main__'.

 

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

 

    ints[. ] = danh sách[đặt[ints]]

    in[int]  # prints [1, 2, 3, 4, 5]

 

Tải xuống Chạy mã

 
Rõ ràng từ ví dụ trên, thứ tự ban đầu của các mục bị mất. Bài đăng này cung cấp tổng quan về một số lựa chọn thay thế có sẵn để duy trì thứ tự ban đầu của các mặt hàng

1. Sử dụng OrderedDict

Để giữ thông tin đặt hàng, bạn có thể sử dụng từ mô-đun collections của Python. OrderedDict là một lớp con dict ghi nhớ thứ tự chèn của các mục nhập của nó.

1

2

3

4

5

6

7

8

9

10

từ bộ sưu tập nhập OrderedDict

 

if __name__ == '__main__'.

 

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

 

    ints[. ] = danh sách[OrderedDict . .từ khóa[int]]

 

    in[int]  # prints [4, 3, 5, 2, 1]

 

Tải xuống Chạy mã

 
Ngoài ra, bạn có thể tận dụng lợi thế của thực tế là vị trí chèn ban đầu không thay đổi khi một mục nhập mới ghi đè mục nhập hiện có của một OrderedDict. Đây là một ví dụ làm việc

1

2

3

4

5

6

7

8

9

từ bộ sưu tập nhập OrderedDict

 

if __name__ == '__main__'.

 

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

 

    ints[. ] = danh sách[OrderedDict . [[x, None] for x in ints].phím[]]

    in[int]  # prints [4, 3, 5, 2, 1]

 

Tải xuống Chạy mã

 
Lưu ý rằng bắt đầu từ Python 3. 7, bạn có thể sử dụng chính tả thông thường vì chúng được đảm bảo sẽ được đặt hàng

2. Sử dụng Thư viện more_itertools

Thư viện more-itertools của Python cung cấp các quy trình tao nhã để làm việc với các lần lặp của Python. Nó có hàm unique_everseen tạo ra các phần tử duy nhất trong khi vẫn giữ nguyên trật tự. Sau đây là một ví dụ đơn giản chứng minh việc sử dụng chức năng này

1

2

3

4

5

6

7

8

9

10

từ more_itertools nhập unique_everseen

 

if __name__ == '__main__'.

 

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

 

    ints[. ] = danh sách[unique_everseen[ints]]

 

    in[int]  # prints [4, 3, 5, 2, 1]

 

Tải xuống mã

3. Sử dụng danh sách hiểu

Một cách tiếp cận khác là xây dựng một “danh sách mới” từ danh sách ban đầu bằng cách sử dụng khả năng hiểu danh sách. Lưu ý cách tiếp cận này tương đối chậm hơn so với hai cách tiếp cận trên

Bộ có thay đổi thứ tự của danh sách không?

Bạn có thể tạo một tập hợp bằng cách đặt các phần tử bên trong dấu ngoặc nhọn [{}], phân tách bằng dấu phẩy [,]. Do đó, các phần tử tập hợp không có thứ tự, không thể thay đổi và cho phép giá trị duy nhất. Ở đây không có thứ tự có nghĩa là các phần tử trong tập hợp không có bất kỳ thứ tự cụ thể nào để tuân theo .

Bộ Python có luôn được sắp xếp không?

Danh sách. sort[] đã thiết lập quy ước sort[] sắp xếp đối tượng tại chỗ, nhưng không thể sắp xếp một bộ tại chỗ vì các bộ không có thứ tự .

Bạn có thể biến một danh sách thành một bộ Python không?

Phương pháp 1. Sử dụng hàm set[] để chuyển đổi danh sách thành tập hợp trong Python . Hàm set[] sẽ giúp chúng ta chuyển đổi một danh sách thành một tập hợp.

Bạn có thể tạo một danh sách các danh sách thành một bộ không?

Danh sách danh sách được xác định và hiển thị trên bảng điều khiển. Danh sách được chuyển đổi thành tập hợp bằng chức năng 'bản đồ' .

Chủ Đề