Bất kỳ đối tượng nào, chẳng hạn như từ điển, có thể là giá trị trả về của hàm Python. Tạo đối tượng từ điển trong thân hàm, gán nó cho bất kỳ biến nào và trả lại từ điển cho người gọi hàm
Giá trị dữ liệu được lưu trữ dưới dạng khóa. cặp giá trị trong từ điển. Từ điển là một bộ sưu tập được sắp xếp theo thứ tự, có thể thay đổi và cấm trùng lặp
Trong bài viết này, chúng ta sẽ thảo luận về các phương thức khác nhau để trả về một từ điển từ một hàm Python
Sử dụng từ điển hiểu
Một dòng mã Python có thể tạo và khởi tạo từ điển bằng cách sử dụng cách đơn giản và hiệu quả về bộ nhớ được gọi là Hiểu từ điển. Biểu thức và ngữ cảnh là hai thành phần của việc hiểu từ điển. Biểu thức chỉ định ánh xạ khóa-giá trị. Bối cảnh chỉ định cặp [khóa, giá trị] nào sẽ được đưa vào từ điển mới bằng cách lặp qua một lần lặp bằng cách sử dụng vòng lặp for một dòng
Ví dụ
Ví dụ sau đây cho thấy cách áp dụng một biểu thức cụ thể để lấy khóa. ánh xạ giá trị được lưu trữ cho biến vòng lặp "x" trong khi lặp qua tất cả các phần tử trong ngữ cảnh đã chỉ định "cho x trong phạm vi [6]". Trong trường hợp này, đó là ánh xạ khóa-giá trị 'x. str[x]' ánh xạ một số nguyên 'x' thành biểu diễn chuỗi của nó 'str[x]'
đầu ra
Sau đây là đầu ra của đoạn mã trên -
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}
Sử dụng hàm Lambda
Hàm lambda trong Python là một hàm ẩn danh. Nó bắt đầu bằng từ khóa lambda, theo sau là danh sách không hoặc nhiều đối số được phân tách bằng dấu phẩy, dấu hai chấm và biểu thức trả về. Với mục đích tạo và trả về một đối tượng từ điển mới, hãy sử dụng hàm dict[] hoặc dấu ngoặc nhọn {}
Ví dụ
Trong ví dụ sau, hàm lambda gán một đối tượng hàm được tạo động cho biến 'create_dictionary'. Sau đó, bạn có thể gọi hàm như đã thực hiện trong ví dụ trước
Không thể ngắn gọn hơn biểu thức trình tạo, tạo từ điển và trả về từ điển đồng thời trong một dòng mã
create_dictionary = lambda : {x:str[x] for x in range[6]} counts = create_dictionary[] print['The returned dictionary is:',counts]
đầu ra
Sau đây là đầu ra của đoạn mã trên -
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}
Bằng cách trả lại từ điển bằng câu lệnh return
Để gửi lại kết quả của hàm cho người gọi, bạn có thể sử dụng câu lệnh trả về Python bên trong một hàm hoặc phương thức. Từ khóa return được theo sau bởi một giá trị trả về tùy chọn trong câu lệnh return. Bất kỳ đối tượng Python nào cũng có thể là giá trị trả về của hàm Python
Ví dụ
Trong ví dụ sau, chúng tôi đã tạo một hàm 'create_dictionary' được sử dụng để tạo từ điển bằng cách gán giá trị cho các khóa. Khi từ điển được tạo, chúng tôi đã trả lại nó bằng câu lệnh return
Bạn cần tạo một hàm trả về từ điển nhưng không biết cách làm? . Đi. ?
Hàm Python có thể trả về bất kỳ đối tượng nào, chẳng hạn như từ điển. Để trả về một từ điển, trước tiên hãy tạo đối tượng dict trong thân hàm, gán nó cho một biến
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}1 và trả lại cho người gọi hàm bằng cách sử dụng thao tác từ khóa “
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}2“
Phương thức cơ bản để tạo và trả về Dict từ hàm
Ví dụ: đoạn mã sau tạo một hàm
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}3 thêm tất cả các số 0, 1, 2, …, 9 làm khóa từ điển cho
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}1 và các biểu diễn chuỗi tương ứng làm giá trị từ điển và trả về dict cho người gọi hàm
def create_dict[]: ''' Function to return dict ''' your_dict = {} for i in range[10]: your_dict[i] = str[i] return your_dict numbers = create_dict[] print[numbers] # {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', # 6: '6', 7: '7', 8: '8', 9: '9'}
Chú ý. Phạm vi biến đổi
Lưu ý rằng bạn lưu trữ từ điển kết quả trong biến
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}5. Biến cục bộ
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}1 mà bạn đã tạo trong thân hàm chỉ hiển thị bên trong hàm chứ không hiển thị bên ngoài hàm. Vì vậy, nếu bạn cố gắng truy cập tên
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}1, Python sẽ tăng một số
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined2
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined
Để khắc phục điều này, chỉ cần gán giá trị trả về của hàm — một từ điển — cho một biến mới và truy cập nội dung của biến mới này
>>> numbers = create_dict[] >>> print[numbers] {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}
Trả lại Dict từ chức năng bằng cách hiểu từ điển
Có nhiều cách khác để trả về một từ điển từ một hàm trong Python. Ví dụ: thay vào đó, bạn có thể sử dụng một câu lệnh hiểu từ điển ngắn gọn hơn nhiều so với mã trước đó—nhưng tạo ra cùng một từ điển ánh xạ số
def create_dict[]: ''' Function to return dict ''' return {i:str[i] for i in range[10]} numbers = create_dict[] print[numbers] # {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}
Với khả năng hiểu từ điển, bạn có thể tự động tạo từ điển bằng cách sử dụng cú pháp
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined3. Bạn lặp lại tất cả các phần tử trong một ngữ cảnh nhất định “
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined4“, và áp dụng một biểu thức nhất định để có được ánh xạ
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined5 được lưu trữ cho biến vòng lặp
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined6. Trong trường hợp của chúng ta, đó là ánh xạ
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined5
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined8 ánh xạ một số nguyên
>>> print[your_dict] Traceback [most recent call last]: File "C:UsersxcentDesktopcode.py", line 9, in print[your_set] NameError: name 'your_dict' is not defined6 thành biểu diễn chuỗi của nó
>>> numbers = create_dict[] >>> print[numbers] {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}0
Trong trường hợp bạn cần tìm hiểu thêm về cách hiểu từ điển, vui lòng xem video giải thích này từ Finxter
Hiểu từ điển Python - Hướng dẫn một lớp mạnh mẽ
Xem video này trên YouTube
Bài viết liên quan. Giới thiệu đơn giản về hiểu từ điển trong Python
Trả về từ điển từ hàm bằng Lambda
Một cách thú vị để trả về lệnh từ hàm là sử dụng hàm lambda
Hàm lambda là một hàm ẩn danh trong Python. Nó bắt đầu bằng từ khóa
>>> numbers = create_dict[] >>> print[numbers] {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}1, theo sau là danh sách không hoặc nhiều đối số được phân tách bằng dấu phẩy, tiếp theo là dấu hai chấm và biểu thức trả về. Sử dụng hàm tạo ______62 hoặc dấu ngoặc nhọn
>>> numbers = create_dict[] >>> print[numbers] {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}3 để tạo và trả về một đối tượng dict mới
Đoạn mã sau sử dụng kết hợp các tính năng
- Hàm lambda tự động tạo một đối tượng hàm và gán nó cho biến
>>> numbers = create_dict[] >>> print[numbers] {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9'}
4. Sau đó, bạn có thể gọi hàm như trước vớiThe returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}
3 - Biểu thức trình tạo tạo một từ điển và trả về nó cùng một lúc trong một dòng mã—nó không thể ngắn gọn hơn thế
The returned dictionary is: {0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5'}0
Đi đâu từ đây?
Đủ lý thuyết. Hãy thực hành một số
Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa
Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án viết mã thực tế
Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?
🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người hoàn toàn mới bắt đầu
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn
Tham gia hội thảo trên web miễn phí ngay bây giờ
lập trình viên
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây