Cách in danh sách đối tượng trong Python

Xin chào, đây là liên kết đến bài học hiện tại. https. //www. học viện mật mã. com/courses/learn-python-3/lessons/data-types/exercises/review?action=resume_content_item

Tôi gặp sự cố khi lấy dữ liệu từ danh sách được xác định trong lớp
đây là mã

class Student:
  testlist = [1,3,4]
  def __init__(self,name,year):
    self.name = name
    self.year = year
    self.grades = []
    
  def __repr__(self):
    pass
    
  def add_grade(self,grade):
    if type(grade) == Grade:
      print('Yes')
      self.grades.append(grade)
    else:
      print('No')
      

class Grade:
  minimum_passing = 65
  def __init__(self,score):
    if self.minimum_passing <= score:
      self.score = score
  
    
roger = Student('Roger van der Weyden',10)
sandro = Student('Sandro Botticelli',12)
pieter = Student('Pieter Bruegel the Elder',8)

pieter.add_grade(Grade(100))
print(pieter.grades[0])
print(pieter.name)
print(pieter.testlist)

và đây là câu trả lời

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]

Các bài học trước đã nói một chút về phương thức repr, trong bài này, nó được sử dụng để trả về một dữ liệu nào đó trong đối tượng lớp khi nó được gọi đơn giản.
Một cái gì đó như thế này

class naming:
  def __init__(self,name):
    self.name = name
  def __repr__(self):
    return self.name

và trong trường hợp của một cái gì đó như

bob  = naming(bob)  
print(bob)

nó trả về “bob” thay vì vị trí đối tượng lớp

Tôi đã tìm kiếm một chút trên google và dường như repr có thể được sử dụng cho rất nhiều thứ khác (cũng như phương thức str), nhưng tôi thiếu kiến ​​thức để hiểu rõ liệu đó có phải là thứ mà tôi phải sử dụng hay không (và nếu vậy thì làm thế nào

Nếu bạn cố gắng return một số thay vì một str từ phương pháp __repr__ hoặc

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
0 để tạo ra một phương tiện cộng các trường hợp
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
1, Python sẽ tăng một số ____1_______2. Sử dụng một chiến lược khác để làm điều đó

Trình thông dịch Python biết cách sử dụng toán tử

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
3 để cộng các số lại với nhau, nối các chuỗi và thực hiện một số thao tác khác. Tuy nhiên, nếu bạn muốn có thể sử dụng toán tử
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
3 để cộng các trường hợp
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
1, bạn cần thông báo cho trình thông dịch Python cách thực hiện điều đó. Xác định một phương thức
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
6 sẽ giúp ích cho nhiệm vụ đó

Thấy

Một ví dụ đơn giản về phương thức

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
6 cho lớp
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
1 sẽ là

  def __add__(self, other):
    return Grade(self.score + other.score)

Với định nghĩa đó, bạn có thể làm điều này

grade_1 = Grade(100)
grade_2 = Grade(94)
grade_3 = Grade(98)
total_of_grades = grade_1 + grade_2 + grade_3
print(total_of_grades)

đầu ra

292

Nếu bạn cũng muốn có thể sử dụng hàm

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
9 tích hợp sẵn của Python trên
class naming:
  def __init__(self,name):
    self.name = name
  def __repr__(self):
    return self.name
0 trong số
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
1 phiên bản, bạn sẽ cần thực hiện thêm một chút công việc trên lớp
Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
1

Lưu ý từ tài liệu chính thức rằng phương pháp __repr__ có nghĩa là để tính toán một biểu diễn str “chính thức” của một đối tượng. Nói chung, nên sử dụng phương thức

Yes
<__main__.Grade object at 0x7fa396b729b0>
Pieter Bruegel the Elder
[1, 3, 4]
0 để tạo biểu diễn thân thiện với người dùng

Xin chào độc giả. Trong bài viết này, chúng tôi sẽ tập trung vào các cách khác nhau để in danh sách Python. Vì vậy, chúng ta hãy bắt đầu


Đầu tiên, Danh sách Python là gì?

Python cung cấp cho chúng ta nhiều cấu trúc dữ liệu khác nhau để lưu trữ và xử lý dữ liệu. Danh sách là một trong số đó

Danh sách Python là cấu trúc dữ liệu lưu trữ chuỗi giá trị dữ liệu có thể thay đổi vào nó. Hơn nữa, danh sách có thể được coi là một tập hợp có thứ tự các phần tử i. e. chúng tuân theo thứ tự của các phần tử

Bây giờ chúng ta hãy tập trung vào một số Kỹ thuật để In các phần tử của Danh sách


1. Sử dụng hàm map() để in Danh sách Python

Hàm map() trong Python có thể được kết hợp với hàm join() để in danh sách Python một cách dễ dàng

cú pháp

''.join(map(str,list))

Thí dụ

lst = [10,20,30,'John',50,'Joe']
print("Elements of the List:\n")
print('\n'.join(map(str, lst))) 

Giải trình

  • Lúc đầu, chúng tôi áp dụng phương thức bản đồ và chuyển đổi các giá trị có trong danh sách thành chuỗi mà chúng tôi ánh xạ chúng sang định dạng chuỗi
  • Sau đó, chúng tôi áp dụng phương thức nối để tập hợp các phần tử và bao gồm một dòng mới để phân tách các phần tử

đầu ra

Elements of the List:

10
20
30
John
50
Joe


2. Sử dụng ký hiệu '*' để in danh sách Python

Tiếp theo, chúng tôi sẽ sử dụng biểu tượng Python '*' để in danh sách

cú pháp

*list

Chúng tôi có thể tùy chỉnh đầu ra bằng cách bao gồm giá trị sep. Dưới đây, chúng tôi đã đặt giá trị phân tách thành một dòng mới

Thí dụ

lst = [10,20,30,'John',50,'Joe'] 
print("Elements of the List:\n")
print(*lst, sep = "\n") 

đầu ra

Elements of the List:

10
20
30
John
50
Joe


3. Phương pháp Naïve- Sử dụng vòng lặp for

Là người mới bắt đầu, phương pháp Naïve luôn là cách tốt nhất để bắt đầu

Trong phương pháp này, chúng tôi lặp qua mọi phần tử của danh sách bằng vòng lặp for và sau đó in danh sách Python tại đây

cú pháp

for element in list:
    print(element)

Thí dụ

lst = [10,20,30,'John',50,'Joe'] 
print("Elements of the List:\n")
for x in lst:
    print(x)

đầu ra

Elements of the List:

10
20
30
John
50
Joe


Phần kết luận

Vì vậy, như đã chứng minh ở trên, đây là những cách khác nhau để In danh sách Python. Tất nhiên, chúng ta có thể sử dụng nhiều phương pháp hơn cho cùng một. Nhưng tôi tin rằng, phương pháp 1 và 2 (đã thảo luận ở trên) vẫn nổi bật là ngoại lệ

Đến đây chúng ta đã đi đến cuối chủ đề này. Để biết thêm các chủ đề như vậy liên quan đến Python, Hãy theo dõi và cho đến lúc đó, Hãy tiếp tục học hỏi và phát triển cùng chúng tôi. 🙂