Chúng ta đều biết về các cấu trúc được sử dụng trong C và C++. Loại cho phép gộp nhiều loại dữ liệu nguyên thủy thành loại dữ liệu do người dùng xác định
Trong python, có thể định nghĩa cấu trúc bằng cách sử dụng một lớp, trong đó người dùng không định nghĩa bất kỳ chức năng nào trong lớp
Ok, tôi biết rằng mặc dù C không có, nhưng C++ cho phép định nghĩa hàm trong cấu trúc. Đây là một tính năng tôi chưa bao giờ sử dụng. Tôi không thể nhớ đã tạo một lớp với tất cả các thành viên dữ liệu và các hàm thành viên là công khai, trong đó sử dụng cấu trúc thay vì lớp là điều hợp lý
Các cấu trúc rất tiện dụng để xác định một kiểu dữ liệu phức tạp được hình thành bằng cách sử dụng nhiều kiểu dữ liệu nguyên thủy đơn giản
Trong Python, có một cách để bạn có thể xác định một tập hợp bắt chước các thuộc tính tương tự như cấu trúc bằng cách sử dụng bên dưới
Một ví dụ dưới đây, một bộ sưu tập. được đặt tênTuple Point được xác định có chứa các trường
struct Point {
float x;
float y;
}
0 và struct Point {
float x;
float y;
}
1from collections import namedtuple
Point = namedtuple['Point', ['x', 'y']]
Một cấu trúc tương tự trong C++ có thể được định nghĩa là
struct Point {
float x;
float y;
}
Giá trị mặc định cho các biến có thể được đặt bằng cách sử dụng
Point = namedtuple['Point', ['x', 'y'], defaults=[0, 0]]
Bắt đầu với C++11, có thể cung cấp cho các thành viên cấu trúc không tĩnh một giá trị mặc định
struct Point {
float x{0.0};
float y{0.0};
};
Khởi tạo nametuple bằng cú pháp tương tự như gọi hàm tạo. Sử dụng đối số vị trí hoặc từ khóa
ntpt = Point[3, y=6]
Truy cập các trường của một bộ có tên tương tự như một cấu trúc
ntpt.x + ntpt.y
Hoặc như tên cho thấy, như một tuple
Đặt trường bằng cách sử dụng thay thế
ntpt._replace[x=5]
Có một vài điều khác mà bạn có thể làm với một tên tuple dành riêng cho python
Chẳng hạn như khởi tạo các trường bằng cách sử dụng danh sách bằng cách sử dụng
struct Point {
float x;
float y;
}
2 và tạo lệnh cho các trường và giá trị bằng cách sử dụng struct Point {
float x;
float y;
}
3Bạn có thể liệt kê các tên trường bằng cách sử dụng
struct Point {
float x;
float y;
}
4 và các giá trị mặc định cho các trường bằng cách sử dụng struct Point {
float x;
float y;
}
5Có một giải pháp thay thế trong python, một phiên bản đã nhập của một têntuple được gọi bên dưới
Nơi bạn có thể thêm các loại trường được liệt kê dưới chú thích
from collections import NamedTuple
p = NamedTuple['Point', [['x', float], ['y', float]]]
Để cung cấp giá trị mặc định, bạn phải xác định một lớp kế thừa NamedTuple
class Point[NamedTuple]:
x: float = 0.0
y: float = 0.0
sử dụng gõ. Lớp kế thừa NamedTuple, đánh bại mục đích xác định cấu trúc dữ liệu tùy chỉnh do người dùng xác định. Bạn cũng có thể chỉ cần sử dụng một lớp thông thường
a
=
np.array[[[
'Sana'
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]0
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]1
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]0
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]3
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]4
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]5
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]0
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]7
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]0
Sorting according to the name [['Mansi', 7, 29.0] ['Sana', 2, 21.0]] Sorting according to the age [['Sana', 2, 21.0] ['Mansi', 7, 29.0]]9
# Python program to demonstrate
0# Python program to demonstrate
1# Python program to demonstrate
2=
30_______4_______30_______5# Python program to demonstrate
6# Python program to demonstrate
7# Python program to demonstrate
8# Python program to demonstrate
9# Structured array
0# Structured array
1# Structured array
2