Chuyển đến nội dung chính

[LEARN PYTHON] Cấu trúc dữ liệu trong Python

  • Tuple và list
     Tuple trong python tương tự mảng nhưng chứa các phần tử có thể khác nhau về kiểudữ liệu
    Ví dụ:
    tuple = ("learn", 1, 1.0)
    tuple[0] = "learn"
    tuple[-1] = 1.0
    tuple[-3] = "learn"
    tuple + ("python", 2) = ("learn", 1, 1.0, "python", 2)
    tuple elements are immuable tức là các phần tử không thể thay đổi trực tiếp giá trị
    tuple1 = tuple; sẽ sao chép 1 tuple gán vào cho tuple1, khi thay đổi tuple1 không ảnh hưởng tới tuple 1
    List trong python gần giống mảng và tuple
    Ví dụ:
    mylist = ["learn", 2,4]
    mylist + [1, 2] = ["learn", 2, 4, [1, 2]]
    list elements are muable: mylist[2] = 5  => mylist = ["learn", 2, 5]

    newlist = mylist sẽ truyền trực tiếp địa chỉ của ô nhớ chứa mylist, khi thay đổi 1 trong 2 sẽ thay đổi cái còn lại. Ta có thể clone bằng cách: newlist = mylist[:]
    hàm split cho phép cắt string thành list. (list rất giống array trong javascript)
  • Sets
    Set trong python có nghĩa như tập hợp, tuy nhiên các phần tử giống nhau sẽ gộp lại thành 1
    Hàm chuyển list thành set:
    mylist = [1,2,3,4,5,1,2] 
    myset = set(mylist) # {1,2,3,4,5}
    myset1 = {1,2,3,6}
    myset2 = myset & myset1 # {1,2,3} hợp 2 tập hợp
    myset2.issubset(myset) # true, kiểm tra có là tập con

    1 in myset # true
    10 in myset # false
    Các hàm khác: difference, intersection, union
  • Dictionary
    Dirctionary bao gồm key và value. giống JSON trong JS.
    Hàm DIC.keys() và values() trả về 1 list các key.

    =>> Chia sẻ chút nhạc cho ngày hôm nay.


Nhận xét

Bài đăng phổ biến từ blog này

KĨ THUẬT LẬP TRÌNH

Nhân cái ngày mưa gió này làm cái blog vui :) Dựa trên đề cương ôn tập môn Kĩ thuật lập trình (Programming Technique) của thầy Trịnh Thành Trung 1. Thứ tự thực hiện các phép toán trong C 1.1 Vi ết chương trình nhập các tham số tương ứng và tính giá trị các biểu thức sau    int a,b,c,d;    a=b=c++=d=10;    in ra a,b,c,d    a=b=++c=d=10;    in ra a,b,c,d    Giữ nguyên đoạn code trên, sửa dòng khai báo thành   int a,c,d,b; chạy chương trình và xem kết quả và đưa ra nhận xét  Trong biểu thức gán  a=b=c++=d=10; (1) a=b=++c=d=10; (2) khi cho vào trình biên dịch chạy (như của mình là TDM GCC 4.9.2 64bit Release) thì biểu thức (1) sinh ra lỗi, trình biên dịch thông báo   "[Error] lvalue required as left operand of assignment" , biểu thức (2) không sinh ra lỗi, console hiển thị các giá trị a=b=c=d=1. Lý giải như sau : Trong C++ có 2 kiểu trả về là tham trị (value) và tham chiếu (reference) :  Đối với biểu thức hậu tố (postfix), sau khi t

[Operating System] PROCESS SYNCHRONIZATION PROBLEM

Operating SYsTem PROCESS SYNCHRONIZATION PROBLEM S ummarize Details some process synchronization problems that popular. Guide Teacher DR. Pham Dang Hai Đàm Minh Tiến - 2017 INTRODUCTION In   computer science ,   synchronization   refers to one of two distinct but related concepts: synchronization of   processes , and synchronization of   data .   Process synchronization   refers to the idea that multiple processes are to join up or   handshake   at a certain point, in order to reach an agreement or commit to a certain sequence of action.   Data synchronization   refers to the idea of keeping multiple copies of a dataset in coherence with one another, or to maintain   data integrity . Process synchronization primitives are commonly used to implement data synchronization. This document will intro some sychronization pr

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Bài viết dựa trên cuốn sách "Cấu trúc dữ liệu và thuật toán" của thầy Nguyễn Đức Nghĩa - Đại học Bách Khoa Hà Nội. " Nhân cái ngày mà người người nhà nhà ôn thi như thế này, sau khi đọc hết cuốn sách, mình nghĩ sao không thử viết 1 cái blog, vừa để chia sẻ mà lại ôn tập " I. CÁC KHÁI NIỆM CƠ BẢN: Trong phần này chủ yếu nói đến các khái niệm về thuật toán và đánh giá. Định nghĩa:  Thuật toán là một dãy hữu hạn các bước để từ đầu vào thu được đầu ra mong muốn. Đánh giá thuật toán dựa trên 2 tiêu chí cơ bản là :  Tài nguyên máy tính Thời gian thực hiện (số phép toán thực hiện) => Sau đây chỉ nói về thời gian thực hiện:  Có 3 loại thời gian tính:  Thời gian tính tốt nhất (tiệm cận dưới) : loại này ít được quan tâm Thời gian tính trung bình  Thời gian tính tồi nhất (tiệm cận trên) : BIG-O  => Sau đây chỉ nói về Big-O:        Big O được hiểu là thời gian tính tồi nhất của một thuật toán (worst case) hay ý nghĩa hình học của