Hướng dẫn python pass list elements as arguments - python chuyển các phần tử danh sách làm đối số

W3Schools được tối ưu hóa cho việc học và đào tạo. Ví dụ có thể được đơn giản hóa để cải thiện việc đọc và học tập. Hướng dẫn, tài liệu tham khảo và ví dụ được xem xét liên tục để tránh lỗi, nhưng chúng tôi không thể đảm bảo tính chính xác đầy đủ của tất cả các nội dung. Trong khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng, cookie và chính sách bảo mật của chúng tôi.

Bản quyền 1999-2022 bởi dữ liệu refsnes. Đã đăng ký Bản quyền. W3Schools được cung cấp bởi W3.CSS.
W3Schools is Powered by W3.CSS.

Trong bài viết này, chúng tôi sẽ học cách chuyển một danh sách cho một chức năng để hoạt động như nhiều đối số trong Python. Chúng tôi sẽ hiểu cách tiếp cận cơ bản với một số mã tùy chỉnh. Trước tiên chúng ta hãy có một cái nhìn nhanh về danh sách trong Python.

Danh sách Python

Python có một loại dữ liệu tích hợp được gọi là Danh sách. Nó giống như một tập hợp các mảng với phương pháp khác nhau. Dữ liệu bên trong danh sách có thể thuộc bất kỳ loại nói, số nguyên, chuỗi hoặc giá trị float hoặc thậm chí là loại danh sách. Danh sách sử dụng các giá trị được phân tách bằng dấu phẩy trong khung vuông để lưu trữ dữ liệu. Danh sách có thể được xác định bằng bất kỳ tên biến nào và sau đó gán các giá trị khác nhau cho danh sách trong khung vuông. Danh sách được đặt hàng, thay đổi và cho phép các giá trị trùng lặp.

list1 = ["Ram", "Arun", "Kiran"]
list2 = [16, 78, 32, 67]
list3 = ["apple", "mango", 16, "cherry", 3.4]

Chuyển danh sách cho một hàm dưới dạng nhiều đối số

Trong Python, các chức năng có thể không có đối số, một đối số duy nhất hoặc nhiều hơn một đối số. Chúng ta có thể vượt qua một chuỗi, số nguyên, danh sách, bộ dữ liệu, một từ điển, vv như các đối số chức năng trong một cuộc gọi hàm. Hàm chấp nhận chúng theo cùng một định dạng và trả về đầu ra mong muốn. Bây giờ, chúng tôi muốn vượt qua một danh sách chứa nhiều yếu tố và các yếu tố này hoạt động như nhiều đối số của một hàm. Khái niệm này về một danh sách duy nhất các yếu tố là nhiều đối số được gọi là danh sách đối số giải nén. Chúng tôi sử dụng *args để giải nén đối số duy nhất thành nhiều đối số. Chúng tôi sử dụng toán tử giải nén * khi các đối số không có sẵn riêng biệt.Unpacking Argument List. We use *args to unpack the single argument into multiple arguments. We use the unpacking operator * when arguments are not available separately.

Ví dụ: chức năng range[] trong Python lưu trữ ba đối số khác nhau - bắt đầu, dừng và bước. Nếu người dùng không muốn nhập riêng các giá trị, anh ta có thể viết cuộc gọi chức năng với toán tử * để giải nén các đối số ra khỏi danh sách hoặc tuple. range[] function in Python stores three different arguments - start, stop, and step. If the user does not want to input the values separately, he can write the function call with the * operator to unpack the arguments out of a list or tuple.

Example:

Trong ví dụ này, my_list là có thể được thông qua như một đối số. Định nghĩa chức năng coi danh sách này là nhiều đối số. Các vòng lặp chương trình Python qua danh sách đã cho và sử dụng từng yếu tố của danh sách làm đối số riêng cho hàm. Mã dưới đây chỉ giải nén danh sách bằng cú pháp *args khi xác định hàm.my_list is iterable that is passed as an argument. Function definition treats this list as multiple arguments. Python program loops over the given list and uses each element of the list as a separate argument to the function. The below code just unpacks the list using the *args syntax when defining the function.

#function definition
def add[*params]:
    sum = 0
    for num in params:
        sum += num
    print[sum]
    
#input list
my_list = [1,2,3]
#function call
add[*my_list]


6

Example:

Phương pháp này rất hữu ích khi các yếu tố không được xác định trước. Chúng ta có thể chuyển nhiều phần tử cho hàm Python mà không cần định trước các tham số chính thức. Ví dụ này sử dụng *args để tránh mã thất bại khi người dùng không biết có bao nhiêu đối số sẽ được gửi đến hàm. Bạn có thể sử dụng phương pháp này khi các phần tử trong danh sách không được xác định trước.

def calculateTotalSum[*arguments]: 
    totalSum = 0
    for number in arguments: 
        totalSum += number 
    print[totalSum] 
  
# function call
calculateTotalSum[5,4,3,2,1] 


15

Sự kết luận

Trong bài viết này, chúng tôi đã sử dụng các ví dụ khác nhau để hiểu làm thế nào chúng ta có thể giải nén các yếu tố danh sách để sử dụng chúng như nhiều đối số. Chúng tôi đã thảo luận về cú pháp *args trong Python để giải nén các lập luận của danh sách và sử dụng chúng một cách riêng biệt trong cơ thể chức năng.

12

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn chuyển các yếu tố của danh sách dưới dạng các đối số chức năng như thế này:

def foo[a, b, c]:
    # do something

list = [1, 2, 3]
foo[list]

Tôi không thể sử dụng

#function definition
def add[*params]:
    sum = 0
    for num in params:
        sum += num
    print[sum]
    
#input list
my_list = [1,2,3]
#function call
add[*my_list]
3, bởi vì tôi không biết có bao nhiêu yếu tố mà danh sách có và có bao nhiêu đối số mà hàm.

mkrieger1

15.9k4 Huy hiệu vàng48 Huy hiệu bạc57 Huy hiệu Đồng4 gold badges48 silver badges57 bronze badges

Đã hỏi ngày 6 tháng 12 năm 2014 lúc 13:29Dec 6, 2014 at 13:29

Sử dụng toán tử giải nén đối số *:

seq = [1, 2, 3]
foo[*seq]

Vì vậy, trong chức năng

#function definition
def add[*params]:
    sum = 0
    for num in params:
        sum += num
    print[sum]
    
#input list
my_list = [1,2,3]
#function call
add[*my_list]
5 bạn có thể sử dụng

getattr[self, func][*args]

PS. Đừng đặt tên cho các biến của bạn

#function definition
def add[*params]:
    sum = 0
    for num in params:
        sum += num
    print[sum]
    
#input list
my_list = [1,2,3]
#function call
add[*my_list]
6, vì nó bóng tối cùng tên.

Đã trả lời ngày 6 tháng 12 năm 2014 lúc 13:30Dec 6, 2014 at 13:30

UnutbuUnutbuunutbu

802K173 Huy hiệu vàng1724 Huy hiệu bạc1625 Huy hiệu Đồng173 gold badges1724 silver badges1625 bronze badges

0

Tôi có thể chuyển một danh sách như một đối số trong Python không?

Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số đến một hàm [chuỗi, số, danh sách, từ điển, v.v.] và nó sẽ được coi là cùng một loại dữ liệu bên trong hàm..

Bạn có thể chuyển một danh sách cho * args không?

Tôi có thể chuyển danh sách cho * args không?Có, sử dụng *arg chuyển args cho một hàm sẽ khiến Python giải nén các giá trị trong ARG và chuyển nó đến hàm.yes, using *arg passing args to a function will make python unpack the values in arg and pass it to the function.

Làm thế nào để bạn vượt qua một danh sách dưới dạng đối số dòng lệnh trong Python?

Làm việc với dòng lệnh: Hãy xem xét mã dưới đây được viết trong cmdlis.py.nhập khẩu sys.In ["Tên của chương trình là", sys.argv [0]] ....
Gọi một danh sách bằng dòng lệnh.nhập khẩu sys.....
Làm việc với danh sách được gọi bằng dòng lệnh.sys.....
Làm việc với nhiều danh sách được truy xuất thông qua dòng lệnh.Nhập SYS ..

Làm thế nào để bạn truy cập các yếu tố của một danh sách trong Python?

Danh sách chữ được viết trong dấu ngoặc vuông [].Danh sách hoạt động tương tự như các chuỗi - sử dụng hàm Len [] và dấu ngoặc vuông [] để truy cập dữ liệu, với phần tử đầu tiên tại INDEX 0.use the len[] function and square brackets [ ] to access data, with the first element at index 0.

Bài Viết Liên Quan

Chủ Đề