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

Trong hướng dẫn này, chúng tôi xem xét Python. Trả về nhiều giá trị từ một hàm. Chúng tôi giải thích chi tiết các phương pháp khác nhau và liệt kê những thiếu sót của chúng

Mục lục - Python trả về nhiều giá trị

  1. Python trả về nhiều giá trị
  2. Các giá trị được phân tách bằng dấu phẩy [Tuples]
  3. Danh sách Python
  4. Từ điển Python
  5. Sử dụng lớp dữ liệu Python
  6. Hạn chế và Hãy cẩn thận - Python trả về nhiều giá trị

Python trả về nhiều giá trị

Các hàm được sử dụng để thực hiện một tác vụ cụ thể mà rất có thể liên quan đến việc trả về một giá trị cụ thể. Tuy nhiên, một vài trường hợp sử dụng có thể yêu cầu bạn trả về hai hoặc nhiều giá trị. Trong các ngôn ngữ lập trình khác, mã để đạt được điều này có thể khá phức tạp nhưng Python cung cấp một số phương thức tiện dụng để trả về nhiều giá trị

Hầu hết các phương thức này liên quan đến việc sử dụng kiểu dữ liệu tập hợp để trả về các giá trị này. Chúng tôi đã xem xét kỹ tất cả chúng bên dưới

Sử dụng các giá trị được phân tách bằng dấu phẩy [Tuples]

Trong phương pháp này, chúng tôi sử dụng Python để trả về nhiều giá trị bằng cách tách chúng bằng dấu phẩy. Python về cơ bản sử dụng một tuple để đạt được điều này

Mã để đạt được điều này như sau.
#Returning Multiple Values using Tuples
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return operation, total;

operation, total = multiple[]

print[operation, total]
#Output = Sum 15

Một sự nhầm lẫn phổ biến ở đây là cú pháp của tuple yêu cầu một cặp dấu ngoặc []. Mặc dù điều này đúng, nhưng không phải lúc nào Python cũng yêu cầu dấu ngoặc để xác định một bộ

Sử dụng danh sách Python

Tương tự như các phương thức trước, danh sách cũng có thể được sử dụng để trả về nhiều giá trị. Trong trường hợp bạn không quen thuộc với danh sách, chúng là tập hợp các mục. Chúng khá giống với mảng tuy nhiên chúng có thể được sử dụng để lưu trữ các giá trị của các loại dữ liệu khác nhau

Vì chúng là tập hợp các mục nên chúng tôi có thể thêm giá trị vào danh sách và trả về danh sách

Mã để trả về nhiều giá trị bằng cách sử dụng danh sách.
#Returning Multiple Values using List
def multiple[]:
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple[]

print[values]
#Output = ["Sum", 15]

Trong phương pháp này, bạn sẽ phải sử dụng chỉ mục của danh sách để sử dụng các giá trị riêng lẻ

Sử dụng từ điển Python

Trong phương pháp trước đó, việc truy cập một giá trị cụ thể sẽ gặp rắc rối. Tuy nhiên, đây không phải là vấn đề khi sử dụng từ điển để trả về nhiều giá trị. Điều này là do chúng tôi có thể sử dụng các tên khóa có liên quan và chúng có thể được truy cập dễ dàng

Mã để làm như vậy là như sau.
#Returning Multiple Values using Dictionary
def multiple[]:
    values = dict[];
    values['operation'] = "Sum" 
    values['total'] = 5+10
    return values;

values = multiple[]

print[values]
#Output = {'operation': 'Sum', 'total': 15}

Trong phương thức này, các giá trị được trả về có thể dễ dàng được truy cập trong các khóa của chúng

Sử dụng lớp dữ liệu Python

Trong phương pháp này, chúng tôi sử dụng Lớp dữ liệu để trả về nhiều giá trị. Các lớp dữ liệu là một phương pháp thêm các phương thức cụ thể vào một lớp do người dùng định nghĩa. Phương pháp này đã được giới thiệu trong phiên bản Python 3. 7

Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để lấy chỉ mục của phần tử trong danh sách trong python. Chúng ta sẽ xem cách tìm chỉ mục đầu tiên của mục trong danh sách, sau đó cách tìm chỉ mục cuối cùng của mục trong danh sách hoặc sau đó là cách lấy chỉ mục của tất cả các lần xuất hiện của một mục trong danh sách. Ngoài ra, chúng tôi cũng sẽ thảo luận về cách tìm chỉ mục của các mục trong danh sách thỏa mãn một điều kiện nhất định

con trăn. Nhận chỉ mục của mục trong Danh sách

Để tìm chỉ mục của phần tử trong danh sách trong python, chúng ta sẽ sử dụng hàm list. mục lục[],

danh sách. mục lục[]

Kiểu dữ liệu danh sách của Python cung cấp phương thức này để tìm chỉ mục đầu tiên của một phần tử đã cho trong danh sách hoặc danh sách con i. e

quảng cáo

list.index[x[, start[, end]]]

Tranh luận

  • x. Mục cần tìm trong danh sách
  • bắt đầu. Nếu được cung cấp, tìm kiếm sẽ bắt đầu từ chỉ mục này. Mặc định là 0
  • kết thúc. Nếu được cung cấp, tìm kiếm sẽ kết thúc tại chỉ mục này. Mặc định là cuối danh sách

trả lại. Chỉ số dựa trên số 0 về lần xuất hiện đầu tiên của phần tử đã cho trong danh sách hoặc phạm vi. Nếu không có phần tử nào như vậy thì nó sẽ tăng ValueError

Tâm điểm. danh sách. index[] trả về chỉ mục theo cách dựa trên 0 tôi. e. phần tử đầu tiên trong danh sách có chỉ số 0 và phần tử thứ hai trong chỉ mục là 1

Hãy sử dụng chức năng này để tìm các chỉ mục của một mục nhất định trong danh sách,

Giả sử chúng ta có một danh sách các chuỗi,

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']

Bây giờ, hãy tìm chỉ mục xuất hiện đầu tiên của mục 'Ok' trong danh sách,

elem = 'Ok'

# Find index position of first occurrence of 'Ok' in the list
index_pos = list_of_elems.index[elem]

print[f'First Index of element "{elem}" in the list : ', index_pos]

đầu ra

First Index of element "Ok" in the list :  1

Như trong danh sách. index[] chúng tôi không cung cấp đối số bắt đầu và kết thúc, vì vậy nó đã tìm kiếm 'Ok' trong danh sách đầy đủ. Nhưng đã trả lại vị trí chỉ mục ngay khi nó gặp sự xuất hiện đầu tiên của 'Ok' trong danh sách

Nhưng nếu mục được tìm kiếm không tồn tại trong danh sách, thì index[] sẽ tăng ValueError. Vì vậy, chúng ta cần phải sẵn sàng cho loại kịch bản này. Ví dụ,

list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']

elem = 'Why'

try:
    index_pos = list_of_elems.index[elem]
    print[f'First Index of element "{elem}" in the list : ', index_pos]
except ValueError as e:
    print[f'Element "{elem}" not found in the list: ', e]

đầu ra

________số 8_______

Vì 'Tại sao' không có trong danh sách, nên danh sách. index[] tăng ValueError

con trăn. Tìm chỉ mục của mục trong danh sách bằng vòng lặp for

Thay vì sử dụng danh sách. index[], chúng ta có thể lặp qua các phần tử danh sách theo vị trí chỉ mục, để tìm chỉ mục của phần tử trong danh sách i. e

list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']

elem = 'is'

pos = -1
# Iterate over list items by index pos
for i in range[len[list_of_elems]]:
    # Check if items matches the given element
    if list_of_elems[i] == elem:
        pos = i
        break

if pos > -1:
    print[f'Index of element "{elem}" in the list is: ', pos]
else:
    print[f'Element "{elem}" does not exist in the list: ', pos]

đầu ra

Index of element "is" in the list is:  2

con trăn. Nhận chỉ mục cuối cùng của mục trong danh sách

Để lấy chỉ mục cuối cùng của một mục trong danh sách, chúng ta chỉ cần đảo ngược nội dung của danh sách và sau đó sử dụng hàm index[] để lấy vị trí chỉ mục. Nhưng điều đó sẽ đưa ra chỉ mục của phần tử từ lần trước. Nơi chúng tôi muốn chỉ mục xuất hiện lần cuối của phần tử từ đầu. Hãy xem làm thế nào để làm điều đó,

list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test']

elem = 'Ok'

try:
    # Get last index of item in list
    index_pos = len[list_of_elems] - list_of_elems[::-1].index[elem] - 1
    print[f'Last Index of element "{elem}" in the list : ', index_pos]
except ValueError as e:
    print[f'Element "{elem}" not found in the list: ', e]

đầu ra

Last Index of element "Ok" in the list :  3

Nó đưa ra chỉ số về lần xuất hiện cuối cùng của chuỗi 'Ok' trong danh sách

Đến đây chúng ta đã biết cách tìm chỉ số xuất hiện đầu tiên của một mục trong danh sách. Nhưng nếu có nhiều lần xuất hiện của một mục trong danh sách và chúng tôi muốn biết chỉ mục của chúng thì sao?

Tìm chỉ mục của tất cả các lần xuất hiện của một mục trong danh sách

Giả sử chúng ta có một danh sách các chuỗi i. e

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
0

Bây giờ chúng tôi muốn tìm chỉ mục của tất cả các lần xuất hiện của 'Ok' trong danh sách, như thế này,

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
1

Chúng là những cách khác nhau để làm điều đó, hãy xem từng cái một

Tìm tất cả các chỉ mục của một mục trong danh sách bằng cách sử dụng danh sách. mục lục[]

Như danh sách. index[] trả về chỉ số xuất hiện đầu tiên của một mục trong danh sách. Vì vậy, để tìm các lần xuất hiện khác của mục trong danh sách, chúng tôi sẽ gọi danh sách. index[] lặp đi lặp lại với các đối số phạm vi. Chúng tôi đã tạo một chức năng sử dụng danh sách. index[] và trả về một danh sách các chỉ mục của tất cả các lần xuất hiện của một mục trong danh sách đã cho i. e

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
2

Hàm này gọi danh sách. index[] trong một vòng lặp. Ban đầu, nó tìm kiếm mục từ chỉ mục thứ 0 trong danh sách. Nhưng khi nó gặp mục, thì từ lần lặp tiếp theo, nó sẽ tìm từ vị trí đó trở đi cho đến khi đạt đến cuối danh sách. Nó giữ các chỉ mục của các phần tử phù hợp trong một danh sách riêng biệt và cuối cùng trả về danh sách đó

Bây giờ, hãy sử dụng chức năng trên để tìm tất cả các chỉ mục của 'Ok' trong danh sách,

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
3

đầu ra

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
4

Tìm trực tiếp tất cả các chỉ mục của một mục trong danh sách trong khi lặp lại

Thay vì sử dụng danh sách. index[], chúng ta có thể lặp lại trực tiếp các phần tử danh sách bằng cách lập chỉ mục bằng cách sử dụng hàm range[]. Sau đó, đối với từng yếu tố, nó sẽ kiểm tra xem nó có khớp với mặt hàng của chúng tôi hay không. Nếu có thì hãy giữ chỉ mục của nó trong danh sách tôi. e

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
5

đầu ra

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
4

giải pháp đơn giản. Nhưng hãy xem xét một số lựa chọn thay thế dòng đơn,

Sử dụng Danh sách hiểu để tìm tất cả các chỉ mục của một mục trong danh sách

Khái niệm tương tự nhưng thay vì sử dụng vòng lặp for để lặp lại, chúng ta có thể đạt được điều tương tự bằng cách sử dụng hiểu danh sách i. e

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
7

đầu ra

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
4

Sử dụng more_itertools. định vị [] để tìm tất cả các chỉ mục của một mục trong danh sách

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
9

định vị [] mang lại chỉ mục của từng mục trong danh sách mà hàm gọi lại đã cho trả về True

Để tìm tất cả các lần xuất hiện của mục 'Ok' trong danh sách, chúng tôi sẽ chuyển một hàm lambda để xác định vị trí[], hàm này sẽ kiểm tra xem mục đó có phải là 'Ok' hay không. e

elem = 'Ok'

# Find index position of first occurrence of 'Ok' in the list
index_pos = list_of_elems.index[elem]

print[f'First Index of element "{elem}" in the list : ', index_pos]
0

đầu ra

# List of strings
list_of_elems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
4

định vị [] mang lại các chỉ mục của các phần tử trong danh sách mà vị từ đã cho là Đúng. Vì vậy, trong trường hợp của chúng tôi, nó mang lại các chỉ số của 'Ok' trong danh sách. Chúng tôi đã thu thập các chỉ mục đó trong một danh sách

Tìm chỉ mục của các mục trong danh sách thỏa mãn các điều kiện nhất định

Giả sử chúng ta muốn tìm chỉ mục của các mục trong danh sách thỏa mãn một số điều kiện như chỉ mục của các mục trong danh sách các chuỗi có độ dài nhỏ hơn 3. Để làm điều đó, chúng tôi đã tạo một chức năng chung i. e

elem = 'Ok'

# Find index position of first occurrence of 'Ok' in the list
index_pos = list_of_elems.index[elem]

print[f'First Index of element "{elem}" in the list : ', index_pos]
2

Hàm này chấp nhận danh sách các phần tử và hàm gọi lại làm đối số. Đối với mỗi phần tử, nó gọi hàm gọi lại và nếu hàm gọi lại [] trả về True thì nó sẽ giữ chỉ mục của phần tử đó trong một danh sách mới. Cuối cùng, nó trả về các chỉ mục của các mục trong danh sách mà callback[] đã trả về True

Hãy gọi hàm này để tìm chỉ mục của các mục trong danh sách các chuỗi có độ dài nhỏ hơn 3 i. e

Bạn có thể trả lại nhiều thứ bằng Python không?

Bạn có thể trả về nhiều giá trị từ một hàm trong Python . Để làm như vậy, hãy trả về cấu trúc dữ liệu chứa nhiều giá trị, chẳng hạn như danh sách chứa số dặm chạy mỗi tuần. Cấu trúc dữ liệu trong Python được sử dụng để lưu trữ các bộ sưu tập dữ liệu, có thể được trả về từ các hàm.

Chúng ta có thể trả về danh sách trong hàm Python không?

Bạn có thể sử dụng bất kỳ đối tượng Python nào làm giá trị trả về. Vì mọi thứ trong Python đều là đối tượng nên bạn có thể trả về chuỗi, danh sách, bộ dữ liệu, từ điển, hàm, lớp, thể hiện, đối tượng do người dùng định nghĩa và thậm chí cả mô-đun hoặc gói.

Trả về [] trong Python là gì?

Định nghĩa và cách sử dụng. Từ khóa trả về là để thoát khỏi hàm và trả về giá trị .

Cách lấy dữ liệu từ danh sách trong Python?

5 cách dễ dàng để trích xuất các phần tử từ danh sách Python .
Trích xuất các phần tử từ danh sách Python bằng chỉ mục. .
In các mục từ danh sách bằng cách sử dụng liệt kê. .
Sử dụng vòng lặp để trích xuất các phần tử danh sách. .
Sử dụng Numpy để xem các mục từ danh sách. .
Trích xuất các phần tử bằng hàm chỉ mục

Chủ Đề