Chức năng của tôi mong đợi một danh sách hoặc một bộ dữ liệu làm tham số. Nó không thực sự quan tâm mà nó là tất cả nó làm là vượt qua nó đến một chức năng chấp nhận hoặc là một danh sách hoặc tuple:Tham số hàm Python: tuple/list
def func(arg): # arg is tuple or list
another_func(x)
# do other stuff here
Bây giờ tôi cần phải thay đổi chức năng một chút, để xử lý một yếu tố bổ sung:
def func(arg): #arg is tuple or list
another_func(x + ['a'])
# etc
Thật không may điều này sẽ không hoạt động: nếu arg là tuple, tôi phải nói x + ('a',)
.
Rõ ràng, tôi có thể làm cho nó hoạt động bằng cách ép arg vào danh sách. Nhưng nó không gọn gàng.
Có cách nào tốt hơn để làm điều đó không? Tôi không thể ép buộc người gọi luôn luôn vượt qua một tuple, tất nhiên, vì nó chỉ đơn giản là chuyển sang làm việc với họ.
Nếu chức năng khác chấp nhận hoặc hơn tôi sẽ gửi cho nó một bộ tuple vì bạn sẽ làm việc nhanh hơn. Sau đó, những gì không gọn gàng về 'tuple (x) + ('a',)'? – aaronasterling
Tuples có nhanh hơn trong quá trình triển khai không? – max
xây dựng một bộ tuple từ chuỗi ký tự và chuỗi số nhanh hơn việc xây dựng danh sách. Quan trọng hơn, 'tuple (x)' chỉ trả về 'x' nếu nó đã là một tuple trong khi' list (x) 'copy' x' ngay cả khi nó đã là một danh sách. Vì vậy, bằng cách sử dụng một tuple, bạn cắt giảm hầu hết các công việc ra cho một nửa số trường hợp đầu vào của bạn. – aaronasterling