Đã đăng vào thg 3 6, 2020 3:29 SA 4 phút đọc
Nếu như các bạn đã tìm hiểu qua về Python thì chắc hẳn đã biết đến các bộ dữ liệu như List, Tuple,... Tất cả các bộ dữ liệu này đều nằm trong một nhóm được gọi là Built-in data structure. Để hiểu rõ hơn về vấn đề trên và phân biệt các bộ dữ liệu thì ở bài viết này mình xin trình bày nó dưới góc nhìn của mình. Đây là lần đầu tiên mình viết bài nên mọi thiếu sót mong các bạn thông cảm !
Khái niệm
List
List được hiểu đơn giản là danh sách lưu trữ dữ liệu một cách tuần tự, có các địa chỉ được gán cho các thành phần của danh sách [ được gọi là index ]. Giá trị đánh chỉ mục được bắt đầu từ số 0 và việc đánh chỉ mục -1 giúp ta duyệt danh sách từ vị trí cuối cùng. Xem ví dụ dưới đây để cùng hiểu thêm nhé.
Tạo 1 danh sách
Output :
Về cơ bản nếu như bạn nào đã học về lập trình thì mọi cấu trúc cũng như cú pháp về list ở các ngôn ngữ tương đối giống nhau. Nên mình sẽ đi sâu vào phần so sánh giữa các bộ dữ liệu thôi nhé.
Dictionary
Dictionary lưu trữ dữ liệu dựa trên cơ chế key-value. Hiểu đơn giản hơn là danh bạ của bạn. Mỗi số điện thoại [ value ] sẽ tương ứng với một tên người dùng [ key ]. Mọi thao tác thêm sửa xóa đều được cho pháp dựa trên key. [ Cái này lạ hơn nên sẽ đi chi tiết hơn nhé ^^ ]
Tạo một Dictionary
Ouput :
Thay đổi và thêm bộ key-value
Xóa bộ key-value
- Sử dụng pop[] để lấy ra phần tử trong dict
- Sử dụng popitem[] để lấy bộ key-value trong dict
- clear[] xóa toàn bộ dict
Output:
Note : Để truy cập từng phần tử trong dict sử dụng key để truy vấn. Hoăc để thêm sửa, xóa.
Tuple
Cái này mới hay nè ^^. Tuple được hiểu giống như list chỉ khác là các giá trị trong tuple không thể thay đổi được. Nói cách khác Tuple là 1 version khác của list. Hãy xem cách nó hoạt động có gì giống và khác với List không nhé. Một điều đáng nói nữa đó chính là chúng ta chỉ có thể thay đổi giá trị trực tiếp trong Tuple.
Khởi tạo
Output : 1,2,3 [ giống với list đó nhỉ
Truy cập các phần tử cũng giống như ở list
Ouput :
Bạn nào mà không hiểu tại sao output lại ra như thế thì học lại mấy syntax cơ bản đi nhé ^^
Ok. Như vậy là đã xong 3 cái rồi. Giờ hãy xem thằng Sets nó khác 3 thằng kia như thế nào nhé!
Sets
Sets là một tập các yếu tố không có thứ tự. Có nghĩa là các phần tử lặp lại chỉ được tính 1 lần duy nhất.
Khởi tạo
Output : 1,2,3,4,5
Các bộ được tạo bằng cách sử dụng các dấu ngoặc hoa nhưng thay vì thêm các cặp khóa-giá trị, bạn chỉ cần truyền các giá trị cho nó.
Thêm 1 phần tử mới
Output : {1,2,3,4}
Thằng Sets này còn 1 số cái hay ho mà nó nó sẽ áp dụng vào từng trường hợp cụ thể nên các bạn đọc thêm ở link mình đặt bên dưới nhé ^^
Đến đây thì mình xin phép kết thúc bài biết. Hi vọng sẽ mang đến cái nhìn rõ hơn về các bộ dữ liệu. ^^
Link tham khảo : //www.edureka.co/blog/data-structures-in-python/#builtin
Link nâng cao : //data-flair.training/blogs/python-data-structures-tutorial/
All rights reserved
Main Content
Nội dung chính
- Create Python dict Variable
- Use Python dict Type in MATLAB
- Pass dict Argument to Python Method
- What is the equivalent of a Matlab struct in Python?
- How do I convert Matlab to Python?
- Can you use Matlab in Python?
- What is a dictionary in Matlab?
This example shows how to use Python® dictionary [dict
] variables in MATLAB®.
To call a Python
function that takes a dict
input argument, create a py.dict
variable. To convert a dict
to a MATLAB variable, call the struct
function.
Create Python dict Variable
Create a dict
variable to pass to a Python function. The pyargs
function creates keyword arguments.
studentID = py.dict[pyargs['Robert',357,'Mary',229,'Jack',391]]
studentID = Python dict with no properties. {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}
Alternatively, create a MATLAB structure and convert it to a dict
variable.
S = struct['Robert',357,'Mary',229,'Jack',391]; studentID = py.dict[S]
studentID = Python dict with no properties. {'Robert': 357.0, 'Mary': 229.0, 'Jack': 391.0}
Use Python dict Type in MATLAB
To convert a dict
type returned from a Python function to a MATLAB variable, call struct
.
Suppose you have a Python function that returns menu items and prices in a dict
object named order
. To run this code in MATLAB, create this variable.
order = py.dict[pyargs['soup',3.57,'bread',2.29,'bacon',3.91,'salad',5.00]]
order = Python dict with no properties. {'soup': 3.57, 'bread': 2.29, 'bacon': 3.91, 'salad': 5.0}
Convert order
to a MATLAB variable.
myOrder = struct with fields:
soup: 3.5700
bread: 2.2900
bacon: 3.9100
salad: 5
Display the price of bacon using MATLAB syntax.
Display the price of bacon using Python syntax. The type of variable price
is double,
which you can use in MATLAB.
A dictionary has pairs of keys and values. Display the menu items in the variable order
using the Python keys
function.
ans = Python dict_keys with no properties. dict_keys[['soup', 'bread', 'bacon', 'salad']]
Display all prices using the Python values
function.
ans = Python dict_values with no properties. dict_values[[3.57, 2.29, 3.91, 5.0]]
Pass dict Argument to Python Method
The Python dict
class has an update
method. To run this code, create a dict
variable of patients and test results.
patient = py.dict[pyargs['name', 'John Doe', ... 'test1', [], ... 'test2', [220.0, 210.0, 205.0], ... 'test3', [180.0, 178.0, 177.5]]];
Convert the patient name to a MATLAB string.
Update and display the results for test1
using the update
method.
update[patient,py.dict[pyargs['test1',[79.0, 75.0, 73.0]]]] P = struct[patient]; disp[['test1 results for '+string[patient{'name'}]+": "+num2str[double[P.test1]]]]
test1 results for John Doe: 79 75 73
- Trial Software
- Trial Software
- Product Updates
- Product Updates
Would you share more details about how the file "lib.mat" is created? I tried following steps:
>>lib.name='hello'
>>Strs[1].id=1
>>Strs[2].id=2
>>Strs[3].id=3
>>lib.Strs = Strs
>>lib.StrList = {1,2,3}
>>save['lib', 'lib']
This what I see in Python:
>>>Obj = eng.load['lib.mat']['lib']
...
ValueError: only a scalar struct can be returned from MATLAB
This is the expected behavior as Struct array is not supported according to the doc:
//www.mathworks.com/help/matlab/matlab_external/handle-data-returned-from-matlab-to-python.html
In this case, "lib" itself is a scalar struct but the element "Strs" is a struct array.
What is the equivalent of a Matlab struct in Python?
NumPy [Numerical Python] NumPy arrays are the equivalent to the basic array data structure in MATLAB.
How do I convert Matlab to Python?
To convert Matlab to python, we have two options, either do it manually or take the help of some tool. To convert Matlab to python, a tool named SMOP [Small Matlab and Octave to Python Compiler] is used. This tool is capable of understanding basic Matlab code and then parsing it to python.
Can you use Matlab in Python?
MATLAB® provides a flexible, two-way integration with many programming languages, including Python. This allows different teams to work together and use MATLAB algorithms within production software and IT systems.
What is a dictionary in Matlab?
A data dictionary is a persistent repository of data that is relevant to your model. It lets you store design data, which defines parameters and signals, and it lets you include data that defines the behavior of the model.