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]
6Vớ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úcThay 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
- 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]
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
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
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
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]
2Giả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
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]
4Giả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 –