Tạo danh sách duy nhất trong Python

Khả năng hiểu danh sách là một công cụ tuyệt vời để tạo danh sách. Nhưng có thể tạo một danh sách các mục duy nhất với khả năng hiểu danh sách không?

Các thách thức

Giả sử chúng ta có một danh sách các bài viết

@dataclass(frozen=True)
class Post:
    title: str
    category: str

posts = [
    Post(title='first post', category='python'),
    Post(title='second post', category='python'),
    Post(title='third post', category='django'),
    Post(title='fourth post', category='python'),
    Post(title='fifth post', category='django'),
]

Bây giờ, giả sử chúng tôi muốn nhận danh sách tất cả các danh mục, nhưng chúng tôi không muốn bất kỳ danh mục nào xuất hiện hai lần trong danh sách của mình. Vì vậy, danh sách kết quả từ danh sách

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
5 ở trên sẽ là
categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
6

Với vòng lặp for, chúng ta có thể làm điều này

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)

Bao quát

Làm thế nào để chúng ta đạt được kết quả tương tự với việc hiểu danh sách?

Chúng ta có thể thử cái này

categories = [p.category for p in posts if p.category not in categories]

Nhưng điều này sẽ không hoạt động vì biến

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
7 chưa tồn tại. Khi chúng tôi sử dụng khả năng hiểu, nó sẽ tạo ra một danh sách nhanh chóng và chúng tôi không có nó trong một biến cho đến khi quá trình hiểu kết thúc

Thay vào đó, chúng ta có thể sử dụng hiểu tập hợp. Set là một vùng chứa dữ liệu chứa các giá trị duy nhất, vì vậy nó sẽ xử lý tính duy nhất cho chúng ta. Để thay đổi cách hiểu danh sách thành cách hiểu tập hợp, điều duy nhất Chúng ta cần làm là thay đổi dấu ngoặc vuông thành dấu ngoặc nhọn

categories = {p.category for p in posts}

Bây giờ

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
7 là một bộ. Điều đó hoạt động tốt nếu chúng ta cần bất kỳ lần lặp nào. Tuy nhiên, nếu chúng ta đặc biệt cần một danh sách, chúng ta cần tạo một danh sách từ một tập hợp

Trong bài đăng này, chúng tôi sẽ giới thiệu ba kỹ thuật khác nhau để xác định xem chúng tôi có bất kỳ giá trị lặp lại nào trong danh sách hay không và có được danh sách các giá trị duy nhất

lựa chọn 1. Sử dụng NumPy

NumPy là một thư viện Python có thể được sử dụng để làm việc với mảng. Chúng tôi có thể sử dụng sự trợ giúp của gói này để nhận các giá trị duy nhất từ ​​​​danh sách. Chúng ta hãy xem xét một ví dụ

Mã số

import numpy as np
def getuniquelist(values):
    assignlist = np.array(values)
    uniquelist = np.unique(assignlist)
    return list(uniquelist)
repeatedlist = [1,2,3,4,4,5,3,2,1]
print("Provided list:", repeatedlist)
print("Newlist: ", getuniquelist(repeatedlist))

đầu ra

Provided list: [1, 2, 3, 4, 4, 5, 3, 2, 1]
Newlist:  [1, 2, 3, 4, 5]

Ghi chú

  • Trước khi nhập gói NumPy, chúng tôi cần cài đặt NumPy bằng cách sử dụng pip install numpy trong terminal

Tạo danh sách duy nhất trong Python

  • Sử dụng np. array() sẽ gán các giá trị danh sách cho mảng NumPy. Bằng cách sử dụng np. unique() chúng ta có thể truy xuất danh sách duy nhất

Lựa chọn 2. Sử dụng kỹ thuật Traversal

Chúng tôi có thể duyệt qua danh sách và lưu trữ từng giá trị trong danh sách mới bằng cách sử dụng kiểm tra điều kiện if để xác nhận rằng chúng tôi không có bất kỳ giá trị lặp lại nào

Mã số

def getuniquelist(values):
    newlist = []
    for x in values:
        if x not in newlist:
            newlist.append(x)
    return newlist
repeatedlist = [8,8,7,9,2,2,0,7]
print("Provided list:", repeatedlist)
print("Newlist: ", getuniquelist(repeatedlist))

đầu ra

Provided list: [8, 8, 7, 9, 2, 2, 0, 7]
Newlist:  [8, 7, 9, 2, 0]

Tùy chọn 3. Sử dụng bộ Python

Theo mặc định, hàm set() lưu trữ một giá trị ngay cả khi nó được thêm nhiều lần. Vì vậy, bằng cách lưu trữ tất cả các giá trị từ danh sách để đặt, chúng tôi có thể đạt được các lần xuất hiện duy nhất

Trong ngôn ngữ lập trình Python, danh sách được định nghĩa là một tập hợp các phần tử theo thứ tự nào đó, điều này cũng cho phép các số trùng lặp để lấy các số hoặc phần tử duy nhất từ ​​​​danh sách đã cho. Chúng tôi giới thiệu danh sách độc đáo. Danh sách duy nhất trong Python là danh sách chứa các phần tử duy nhất không phân biệt thứ tự. Có một số phương pháp để lấy một danh sách duy nhất từ ​​​​danh sách đã cho. Hãy xem ví dụ dưới đây về danh sách duy nhất chứa gì

Ví dụ

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

  • Xem xét danh sách đầu vào đã cho A = [76, 67, 86, 76, 86, 89, 98, 67, 67]
  • đầu ra. A = [76, 67, 86, 89, 98]

Từ ví dụ trên ta thấy trong danh sách A đã cho có những phần tử hoặc số có phần tử trùng nhau nên để lấy được một danh sách duy nhất thì cho ra kết quả không có phần tử trùng

Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án)

Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python

Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python
Tạo danh sách duy nhất trong Python

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 (83.616 xếp hạng)

Các phương pháp để có được Danh sách duy nhất trong Python là gì?

Dưới đây là các phương pháp

Phương pháp #1 – Sử dụng Traversal

Trong phương pháp này, các mục trong danh sách được duyệt qua riêng lẻ. Sau đó, các mục được thêm vào hoặc có thể nối thêm mục đó vào danh sách duy nhất nếu mục đó không có trong danh sách duy nhất. Điều này có thể được thực hiện bằng vòng lặp for đơn giản và câu lệnh if. Dưới đây là mã cho phương pháp này

Mã số

________số 8

đầu ra

Tạo danh sách duy nhất trong Python

Phương pháp #2 – Sử dụng thuộc tính set()

set(), có các đối số có thể lặp lại là các phần tử riêng biệt. Sử dụng thuộc tính này để kiểm tra các mục duy nhất và nối thêm các mục duy nhất này của danh sách để đặt. Sự khác biệt chính giữa danh sách và tập hợp là danh sách cho phép chúng ta chèn các phần tử trùng lặp, nhưng tập hợp không có phần tử trùng lặp vì các phần tử chỉ được chèn một lần, ngay cả khi nó được chèn nhiều lần

cú pháp

set(Iterable elements)

Mã số

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
0

đầu ra

Tạo danh sách duy nhất trong Python

Phương pháp #3 – Sử dụng Thư viện Python numpy

Trong python, chúng tôi có các thư viện rất mạnh giúp công việc của chúng tôi được thực hiện dễ dàng. Đầu tiên nhập thư viện numpy. Sau đó chuyển đổi danh sách đã cho thành một mảng bằng cách sử dụng a=numpy. mảng() và sử dụng numpy. các hàm unique(a) trả về danh sách các phần tử duy nhất từ ​​danh sách đã cho

Mã số

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
1

đầu ra

Tạo danh sách duy nhất trong Python

Hàm duy nhất hoạt động như thế nào trong Python?

Từ các phương pháp trên, chúng tôi đã sử dụng numpy. chức năng duy nhất (). Trong Python, hàm unique() là một hàm trả về các giá trị duy nhất từ ​​danh sách hoặc mảng giá trị đã cho

Điều này có thể được thực hiện như sau

cú pháp

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
2

Giải trình

  • mảng. Nó chứa mảng đầu vào của các phần tử
  • retur_index. Trả về các chỉ số của các phần tử mảng đầu vào nếu đúng
  • return_inverse. Trả về các chỉ số của các phần tử mảng duy nhất được sử dụng để lấy danh sách hoặc mảng duy nhất làm mảng đầu vào mới, nếu đúng
  • return_count. Nó trả về số lần trùng lặp có mặt trong mảng đầu vào từ các phần tử mảng duy nhất

Hãy cho chúng tôi xem hoạt động của chức năng này với sự trợ giúp của các ví dụ được đề cập bên dưới

Ví dụ 1

Mã số

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
3

đầu ra

Tạo danh sách duy nhất trong Python

Ví dụ #2

Như chúng ta đã biết, Python được sử dụng với Khoa học dữ liệu giúp lấy một số giá trị duy nhất để phân tích từ tập dữ liệu khổng lồ. Để làm điều này trong python, chúng tôi sử dụng gói Pandas, gói này có chức năng duy nhất () để lấy các giá trị duy nhất từ ​​tập dữ liệu đã cho, là tệp CSV

Mã số

categories = []
for p in posts:
    if p.category not in categories:
        categories.append(p.category)
4

Giải trình. Từ ví dụ này, trước tiên hãy nhập gấu trúc và sử dụng chức năng duy nhất. Đọc các bài báo tập tin. csv mà từ duy nhất “Python” cần được in

Phần kết luận

Trong ngôn ngữ lập trình Python, có một số phương thức để lấy các giá trị duy nhất từ ​​danh sách, mảng phần tử, tập dữ liệu đã cho, v.v. Các giá trị duy nhất có được bằng cách duyệt qua mọi phần tử trong danh sách và so sánh chúng với mảng đầu vào và chỉ nối thêm các giá trị duy nhất trong một danh sách duy nhất. Các giá trị duy nhất cũng có được bằng cách sử dụng thuộc tính set() trên một danh sách hoặc mảng các phần tử mà các phần tử trùng lặp không được phép trong set(). Dữ liệu duy nhất có thể được lấy từ các gói hoặc thư viện python như numpy và Pandas, có hàm unique() để lấy đầu ra của dữ liệu duy nhất từ ​​tập hợp dữ liệu đã cho

Bài viết được đề xuất

Đây là hướng dẫn về Danh sách duy nhất của Python. Ở đây chúng tôi thảo luận về phần giới thiệu về Danh sách duy nhất của Python cùng với các phương pháp khác nhau để có được một danh sách duy nhất và các ví dụ tương ứng để hiểu rõ hơn. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Có danh sách duy nhất trong Python không?

Danh sách trong python có thể chứa các phần tử, tất cả các phần tử này có thể là duy nhất hoặc không . Nhưng đối với một kịch bản khi chúng ta cần các yếu tố duy nhất như đánh dấu điểm danh cho các số điểm danh khác nhau của một lớp.

Duy nhất () trong Python là gì?

unique() tìm các phần tử duy nhất của một mảng và trả về các phần tử duy nhất này dưới dạng một mảng đã sắp xếp . Ngoài các yếu tố duy nhất, còn có một số đầu ra tùy chọn, như sau. Đầu ra có thể là các chỉ số của mảng đầu vào cung cấp các giá trị duy nhất.

Giá trị duy nhất trong danh sách Python là gì?

Sử dụng tính năng nhập numpy của Python, các phần tử duy nhất trong mảng cũng được lấy. Trong bước đầu tiên chuyển đổi danh sách thành x=numpy. mảng (danh sách) và sau đó sử dụng numpy. hàm unique(x) để lấy các giá trị duy nhất từ ​​danh sách .

Làm cách nào để tạo danh sách trong Python?

Để xác định danh sách trong Python, có hai cách. Đầu tiên là thêm các mục của bạn vào giữa hai dấu ngoặc vuông . Phương pháp thứ 2 là gọi hàm tích hợp danh sách Python bằng cách chuyển các mục cho nó.