Thêm nhiều mục vào danh sách Python

Trong quá trình phát triển của bất kỳ hệ thống nào, việc xử lý các danh sách là rất phổ biến, chẳng hạn như danh sách các sản phẩm. Giả sử chúng ta có đại diện sau đây của một sản phẩm

clase Producto (objeto): def __init __ (self, nombre, valor):
  self .__ nombre = nombre
  auto .__ valor = valor

  def __repr __ (self):
    return "nombre:% s valor:% s"% (self .__ nombre, self .__ valor)

  def get_nombre (self):
    return self .__ nombre

  def get_valor (self):
    return self .__ valor

Vì vậy, chúng tôi có một danh sách với một số sản phẩm

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos

Nếu chúng tôi chạy mã này, chúng tôi sẽ nhận được kết quả sau

________hai

Hiện tại, mọi thứ đang diễn ra như mong đợi. Nhưng nếu chúng ta muốn thêm một sản phẩm mới vào danh sách này thì sao? . Sau đó, hãy thử chúng. Chúng ta sẽ bắt đầu với

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
7

producto4 = Producto("Queso", 4.25) 
productos.append(producto4)

print productos

Nhìn xem kết quả là gì

[nombre:Chocolate valor:4.35, nombre:Jugo valor:3.75, nombre:Feijao valor:10.5, nombre:Queso valor:4.25]

Mọi thứ dường như diễn ra như mong đợi. Vì vậy, hãy thử chức năng

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
8

producto4 = Producto("Queso", 4.25) 
productos.extend(producto4)

print productos

Hãy thử lại mã

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
0

ối. Có vẻ như phần mở rộng không thể thêm một đối tượng vào danh sách. Có thật không?

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
8, không giống như
from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
7, lặp qua phần tử bạn muốn thêm, tức là bao bọc đối số được truyền bởi tham số bên trong một vòng lặp, sau đó thêm các giá trị có trong tham số đó, trong trường hợp này, bạn đã cố gắng thực hiện điều này với đối tượng loại Sản phẩm. Đây chính xác là lý do tại sao không thể thêm đối tượng loại Sản phẩm và nó đã gây ra lỗi này

Vậy điều đó có nghĩa là chúng ta không thể sử dụng phần mở rộng để thêm các đối tượng?

Không hẳn

Một giải pháp cho vấn đề này là, thay vì gửi một đối tượng thuần túy, hãy gửi dưới dạng tham số cấu trúc có thể lặp lại chứa đối tượng thuộc loại "Sản phẩm", tức là gửi danh sách chứa Sản phẩm!

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
3

bây giờ nó có hoạt động không?

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
4

Nó hoạt động như mong đợi. Tuy nhiên, chúng tôi chỉ thêm một yếu tố duy nhất!. Nếu chúng ta muốn thêm nhiều yếu tố thì sao? . Nó sẽ hoạt động mà không có vấn đề?

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
6

Khi kiểm tra mã, chúng tôi nhận được kết quả sau

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
0

Rõ ràng nó hoạt động, nhưng lưu ý rằng thay vì thêm từng sản phẩm vào danh sách sản phẩm, nó đã thêm toàn bộ danh sách!. Nghĩa là, khi chúng ta sử dụng append, nó chỉ cần thêm toàn bộ giá trị vào danh sách. Nhưng nếu chúng ta sử dụng

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
8 thì sao?

________mười một

Chạy lại mã

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
2

Nó hoạt động như mong đợi. Do đó, chúng tôi kết luận rằng hai chức năng hoạt động như sau

  • nối thêm. Thêm bất kỳ giá trị đầy đủ nào, ví dụ: nếu chúng tôi gửi một đối tượng, nó sẽ thêm đối tượng, nếu chúng tôi gửi một danh sách, nó sẽ thêm toàn bộ danh sách thay vì các phần tử của nó

  • Gia hạn. thêm các phần tử của cấu trúc có thể lặp lại, ví dụ: nếu chúng ta gửi một đối tượng thuần túy thì nó không biết cách thêm nó, tuy nhiên nếu chúng ta gửi cùng một đối tượng đó trong danh sách, nó sẽ quét danh sách và thêm đối tượng đó và nếu có những đối tượng khác thì phần còn lại bên trong danh sách

Chúng ta có thể thấy rõ sự khác biệt giữa hai hàm khi thử thêm một chuỗi, ví dụ chuỗi "chocolate"

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
3

nối kết quả

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
4_
from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
5

nối kết quả

from model import Producto

Chocolate = Producto("Chocolate", 4.35) 
Jugo = Producto("Jugo", 3.75) 
Frijoles = Producto("Frijoles", 10.5) 
Producto = [Chocolate, Jugo, Frijoles]

print Productos
6

Lưu ý rằng trong khi append thêm toàn bộ chuỗi, hãy mở rộng từng chữ cái đã thêm, bởi vì chuỗi, đằng sau hậu trường, là một mảng của

[nombre:Chocolate valor:4.35, nombre:Jugo valor:3.75, nombre:Frijoles valor:10.5]
5, do đó, nó quét mảng này, tức là cấu trúc có thể lặp lại này và thêm từng mục

Còn về việc tìm hiểu thêm về Python và các tài nguyên khác nhau của nó thì sao?

Làm cách nào để thêm các mục vào danh sách trống trong Python?

Nếu bạn cần thêm phần tử vào danh sách trống , bạn có thể làm như vậy bằng cách gọi các phương thức append() và insert(). append() thêm một phần tử vào cuối danh sách . insert() thêm một phần tử tại một vị trí cụ thể trong danh sách . Vị trí này đại diện cho chỉ mục của danh sách .

Làm cách nào để trộn các phần tử của danh sách trong Python?

Trộn danh sách Python .
Sử dụng ngẫu nhiên. xáo trộn. Giải pháp tiêu chuẩn để xáo trộn danh sách trong Python là sử dụng hàm shuffle() của mô-đun ngẫu nhiên. .
Sử dụng ngẫu nhiên. mẫu. Hàm shuffle() xáo trộn danh sách tại chỗ, tức là các phần tử được sắp xếp lại trong danh sách. .
sử dụng numpy. ngẫu nhiên

Làm cách nào để thêm danh sách vào danh sách trong Python?

Sử dụng phương thức expand() để thêm vào danh sách sang danh sách khác bằng Python . Python có một phương thức tích hợp sẵn cho danh sách được gọi là hàm mở rộng () chấp nhận một lần lặp làm tham số và thêm vào vị trí cuối cùng của lần lặp hiện tại.

Làm cách nào để thêm các phần tử vào một bộ trong Python?

Để tạo một bộ với một phần tử . phần tử, hoặc (elem, ). Lưu ý rằng dấu phẩy luôn được thêm vào. Để tạo một bộ gồm nhiều phần tử , hãy phân tách chúng bằng dấu phẩy. a,b,c hoặc (a,b,c). bộ dữ liệu cũng có thể được tạo bằng hàm tạo của lớp, bộ dữ liệu (có thể lặp lại).