Đối với phương thức thêm bên dưới:
def __add__[self, other]:
self.str_list.append[other]
self.count += 1
return self.str_list
Làm thế nào tôi có thể viết lại điều này mà không cần thêm vào?without append?
PS:
1] STR_LIST là một biến thể hiện của danh sách loại được khai báo trong init
2] Không sử dụng các chức năng sẵn có được sử dụng.
Hỏi ngày 26 tháng 4 năm 2017 lúc 3:34Apr 26, 2017 at 3:34
4
Đó là một lời trêu ghẹo não thú vị, thách thức được thêm vào danh sách mà không sử dụng chức năng tích hợp. Tôi chỉ có thể nghĩ về một cách tiếp cận:
self.str_list = [*self.str_list, other]
Các phương pháp khác như
self.str_list = [*self.str_list, other]
3 về mặt kỹ thuật bằng cách sử dụng phương pháp tích hợp self.str_list = [*self.str_list, other]
4 vì vậy hãy cẩn thận với mục đích của bạn, bất kể nó có thể là gì.Đã trả lời ngày 26 tháng 4 năm 2017 lúc 3:54Apr 26, 2017 at 3:54
EyueldkeyueldkEyuelDK
2.8692 Huy hiệu vàng18 Huy hiệu bạc26 Huy hiệu đồng2 gold badges18 silver badges26 bronze badges
4
Thêm các yếu tố vào danh sách
Danh sách là một trong những cấu trúc dữ liệu hữu ích nhất có sẵn trong Python hoặc thực sự là bất kỳ ngôn ngữ lập trình nào, vì chúng được sử dụng trong rất nhiều thuật toán và giải pháp khác nhau.
Khi chúng tôi đã tạo một danh sách, thường thì chúng tôi có thể cần thêm các yếu tố mới vào nó, cho dù đó là ở cuối, bắt đầu hoặc ở đâu đó ở giữa. Python cung cấp cho chúng tôi ba phương pháp khác nhau để làm như vậy. Trong bài viết này, tôi sẽ hiển thị sự khác biệt giữa các phương thức
self.str_list = [*self.str_list, other]
5, self.str_list = [*self.str_list, other]
6 và self.str_list = [*self.str_list, other]
7.Nối
Phương pháp này thêm một phần tử ở cuối danh sách hiện có. Cú pháp để sử dụng nó là:
a.append[x]
Ở đây biến
self.str_list = [*self.str_list, other]
8 là danh sách của chúng tôi và self.str_list = [*self.str_list, other]
9 là yếu tố cần thêm. Biểu thức này tương đương với a.append[x]
0.Ví dụ: đây là cách sử dụng nó để đặt phần tử "y" ở cuối danh sách của chúng tôi,
self.str_list = [*self.str_list, other]
8:a = [1, 'x', 2]
a.append['y']
print[a]
Chạy mã này sẽ dẫn đến đầu ra sau:
$ python append.py
[1, 'x', 2, 'y']
Chèn
Phương thức này chèn một mục tại một vị trí được chỉ định trong danh sách đã cho. Cú pháp là:
a.insert[i, x]
Ở đây đối số
a.append[x]
2 là chỉ số của phần tử trước đó để chèn phần tử self.str_list = [*self.str_list, other]
9. Do đó, a.append[x]
4 là điều tương tự như a.append[x]
5. Mặc dù, sức mạnh của phương pháp này đi vào sử dụng nó để đặt các mục ở đâu đó trong danh sách chứ không phải ở cuối. Nếu bạn chỉ cần thêm một yếu tố vào cuối danh sách thì self.str_list = [*self.str_list, other]
5 hoạt động tốt cho điều đó và nhanh hơn [vấn đề quan trọng đối với danh sách lớn].Ví dụ:
a = [1, 'x', 'y']
a.insert[2, 2]
print[a]
Mã này sẽ dẫn đến đầu ra sau:
$ python insert.py
[1, 'x', 2, 'y']
Như bạn có thể thấy, phần tử được đưa ra được đặt ở bất cứ đâu trong danh sách mà chúng tôi chỉ định. Điều này hoạt động tốt khi bạn có một danh sách trong đó các mục của nó được đặt hàng, vì vậy bạn không thể thêm phần tử của mình vào cuối, giống như bạn sẽ làm với
self.str_list = [*self.str_list, other]
5.Gia hạn
Phương pháp này thêm các yếu tố [lưu ý số nhiều của nó!] Danh sách kết quả là một trong đó có tất cả các yếu tố của cả hai danh sách.
Cú pháp sử dụng phương pháp này là:
a.extend[x]
Trong trường hợp này
self.str_list = [*self.str_list, other]
8 là danh sách của chúng tôi và self.str_list = [*self.str_list, other]
9 là một đối tượng có thể đi được, chẳng hạn như một danh sách khác. Phương pháp này tương đương với a = [1, 'x', 2]
a.append['y']
print[a]
0.Ví dụ:
a = [1, 'x', 'y']
b = [1, 2]
a.extend[b]
print[a]
Mã này sẽ dẫn đến đầu ra sau:
Như bạn có thể thấy, phần tử được đưa ra được đặt ở bất cứ đâu trong danh sách mà chúng tôi chỉ định. Điều này hoạt động tốt khi bạn có một danh sách trong đó các mục của nó được đặt hàng, vì vậy bạn không thể thêm phần tử của mình vào cuối, giống như bạn sẽ làm với
self.str_list = [*self.str_list, other]
5.self.str_list = [*self.str_list, other]
0Gia hạn
Phương pháp này thêm các yếu tố [lưu ý số nhiều của nó!] Danh sách kết quả là một trong đó có tất cả các yếu tố của cả hai danh sách.
Cú pháp sử dụng phương pháp này là:
Trong trường hợp này
self.str_list = [*self.str_list, other]
8 là danh sách của chúng tôi và self.str_list = [*self.str_list, other]
9 là một đối tượng có thể đi được, chẳng hạn như một danh sách khác. Phương pháp này tương đương với a = [1, 'x', 2]
a.append['y']
print[a]
0.self.str_list = [*self.str_list, other]
1Chạy mã này dẫn đến kết quả đầu ra sau:
self.str_list = [*self.str_list, other]
2Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!
Lưu ý cách hai danh sách được kết hợp với nhau, từng danh sách này.
Trong Python, bạn cũng có thể đạt được kết quả tương tự bằng cách thực hiện một bổ sung đơn giản. Vì vậy,
a = [1, 'x', 2]
a.append['y']
print[a]
1, trong trường hợp này, sẽ dẫn đến cùng một mảng chính xác như tập lệnh của chúng tôi ở trên. Điều này là nhờ phương pháp a = [1, 'x', 2]
a.append['y']
print[a]
2 đang được triển khai trong danh sách, nhưng đó là phạm vi của bài viết này.So sánh từng phương pháp
Để xem các kết quả khác nhau thu được thông qua các phương pháp này, hãy so sánh trực tiếp bằng cách chạy mã sau:
Phương pháp 6, mặt khác, thực sự bổ sung các yếu tố riêng lẻ của danh sách 5, dưới dạng các yếu tố riêng biệt và duy nhất của danh sách kết quả. | Đây là tất cả phù hợp với những gì chúng ta đã thấy trước đây, nghĩa là, 5 và 7 chỉ thêm một yếu tố. Trong khi đó, 6, mở rộng trong danh sách ban đầu bằng cách thêm các yếu tố của danh sách thứ hai ở cuối. |
Một sự khác biệt khác để xem xét là thước đo hiệu quả. Đưa ra cách mỗi hoạt động hoạt động, chúng ta có thể dễ dàng tìm ra độ phức tạp về thời gian cho từng phương thức. Hoặc bạn chỉ có thể gian lận và kiểm tra trang phức tạp về thời gian trên trang Wiki của Python.org. | Sự phức tạp về thời gian như sau: |
Phương pháp | Độ phức tạp về thời gian |
$ python append.py
[1, 'x', 2, 'y']
2O [1]
3$ python append.py [1, 'x', 2, 'y']
- Trên]
4$ python append.py [1, 'x', 2, 'y']
Được]
Ở đây "N" là số lượng các phần tử hiện tại trong danh sách và "K" là số lượng các phần tử trong đối tượng tham số.