Cách thêm dữ liệu vào từ điển trống trong Python

Chương này đi vào chi tiết hơn về một số điều bạn đã học và cũng bổ sung thêm một số điều mới.

5. 1. Tìm hiểu thêm về danh sách¶

Kiểu dữ liệu danh sách có thêm một số phương thức. Dưới đây là tất cả các phương thức của các đối tượng danh sách

danh sách. chắp thêm[x]

Thêm một mục vào cuối danh sách. Bằng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
5

danh sách. mở rộng[có thể lặp lại]

Mở rộng danh sách bằng cách thêm tất cả các mục của iterable vào nó. Bằng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
6

danh sách. insert[i , x ]

Chèn một mục tại một vị trí nhất định. Đối số đầu tiên là chỉ mục của mục mà nó sẽ được chèn vào trước đó, do đó,

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
7 sẽ chèn vào đầu danh sách và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
8 bằng với
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
9

danh sách. xóa[x]

Xóa mục đầu tiên khỏi danh sách có giá trị là x. Cuộn một

squares = list[map[lambda x: x**2, range[10]]]
0 nếu không có vật phẩm nào như vậy tồn tại

danh sách. bốp[[i] ]

Xóa mục ở vị trí đã cho khỏi danh sách và trả lại mục đó. Nếu không có chỉ mục nào được chỉ định,

squares = list[map[lambda x: x**2, range[10]]]
1 sẽ xóa và trả về phần tử cuối cùng của danh sách. [Dấu ngoặc bao quanh i trong chữ ký phương thức biểu thị rằng tham số là tùy chọn, không phải bạn nên viết dấu ngoặc ở vị trí đó. Bạn sẽ thấy ký hiệu này thường xuyên trong Tài liệu tham khảo thư viện Python. ]

danh sách. xóa[]

Xóa tất cả các mục khỏi danh sách. Tương đương với

squares = list[map[lambda x: x**2, range[10]]]
2

danh sách. chỉ mục[x[ , bắt đầu[ , kết thúc] ]]

Trả về chỉ mục dựa trên 0 của phần tử đầu tiên có giá trị bằng x. Ném một ngoại lệ

squares = list[map[lambda x: x**2, range[10]]]
0 nếu không có phần tử nào như vậy tồn tại

Các đối số tùy chọn bắt đầu và kết thúc được hiểu là ký hiệu lát cắt và được sử dụng để giới hạn tìm kiếm trong một phân đoạn cụ thể của danh sách. Chỉ mục được trả về được tính tương đối so với phần đầu của toàn bộ chuỗi chứ không liên quan đến đối số bắt đầu.

danh sách. đếm[x]

Trả về số lần x xuất hiện trong danh sách

danh sách. sắp xếp[* , phím =Không , đảo ngược= Sai]

Sắp xếp các mục trong danh sách tại chỗ [có thể sử dụng các đối số để tùy chỉnh thứ tự danh sách, xem

squares = list[map[lambda x: x**2, range[10]]]
4 để biết giải thích]

danh sách. đảo ngược[]

Đảo ngược danh sách các mục tại chỗ

danh sách. bản sao[]

Trả về một bản sao nông của danh sách. Tương đương với

squares = list[map[lambda x: x**2, range[10]]]
5

Một ví dụ sử dụng hầu hết các phương pháp danh sách

________mười một

Bạn có thể nhận thấy rằng các phương thức như

squares = list[map[lambda x: x**2, range[10]]]
6,
squares = list[map[lambda x: x**2, range[10]]]
7 hoặc
squares = list[map[lambda x: x**2, range[10]]]
8 chỉ sửa đổi danh sách không có giá trị trả về được in ra – chúng trả về giá trị mặc định là
squares = list[map[lambda x: x**2, range[10]]]
9. 1 Đây là nguyên tắc thiết kế cho tất cả các cấu trúc dữ liệu có thể thay đổi trong Python

Một điều khác mà bạn có thể nhận thấy là không phải tất cả dữ liệu đều có thể được sắp xếp hoặc so sánh. Ví dụ, không thể sắp xếp

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
60 vì không thể so sánh số nguyên với chuỗi và Không thể so sánh với các loại khác. Ngoài ra còn có một số loại không có mối quan hệ đặt hàng được xác định. Ví dụ:
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
61 không phải là phép so sánh hợp lệ.

5. 1. 1. Sử dụng danh sách làm ngăn xếp¶

Các phương thức liệt kê giúp dễ dàng sử dụng danh sách dưới dạng ngăn xếp, trong đó mục cuối cùng được thêm vào là mục đầu tiên bị xóa ["vào sau cùng, ra trước"]. Để thêm một phần tử vào đầu ngăn xếp, hãy sử dụng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
62. Để bật một phần tử từ trên cùng của ngăn xếp, hãy sử dụng
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
63 mà không có chỉ mục rõ ràng. Ví dụ

________hai mươi

5. 1. 2. Sử dụng danh sách làm hàng đợi¶

Cũng có thể sử dụng danh sách làm hàng đợi, trong đó mục đầu tiên được thêm vào là mục đầu tiên bị xóa ["vào trước, ra trước"]; . Việc thêm vào và xóa khỏi cuối danh sách thì nhanh, nhưng việc thêm hoặc xóa từ đầu danh sách thì chậm [vì tất cả các phần tử khác phải được bù bằng một phần tử]

Để triển khai đuôi, hãy sử dụng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
64 được thiết kế để nhanh chóng thêm và xóa cả hai đầu. Ví dụ

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2

5. 1. 3. Danh sách hiểu¶

Khả năng hiểu danh sách cung cấp một cách ngắn gọn để tạo danh sách. Cách sử dụng phổ biến của nó là tạo các danh sách mới trong đó mỗi phần tử là kết quả của một số thao tác được áp dụng cho từng thành viên của một chuỗi khác hoặc có thể lặp lại hoặc để tạo một phân đoạn của chuỗi các phần tử đó để đáp ứng một điều kiện nhất định.

Ví dụ: giả sử chúng ta muốn tạo một danh sách các ô vuông, như

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Lưu ý rằng điều này tạo ra [hoặc ghi đè] một biến có tên là

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
65 tiếp tục tồn tại sau khi vòng lặp kết thúc. Chúng ta có thể tính toán danh sách các ô vuông mà không có bất kỳ tác dụng phụ nào bằng cách thực hiện

squares = list[map[lambda x: x**2, range[10]]]

hoặc, tương đương

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
6

cái nào ngắn gọn và dễ đọc hơn

Việc hiểu danh sách bao gồm các dấu ngoặc vuông bao quanh một biểu thức theo sau là câu lệnh

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
66 và sau đó là không hoặc nhiều câu lệnh
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
66 hoặc
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
68. Kết quả sẽ là một danh sách mới xuất phát từ việc đánh giá biểu thức trong ngữ cảnh của
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
66 hoặc
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
68 theo sau nó. Ví dụ: cách hiểu danh sách này kết hợp các thành phần của hai danh sách nếu chúng không giống nhau.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2

và tương đương với

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3

Lưu ý cách thứ tự của

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
66 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
68 giống nhau ở cả hai đoạn mã

Nếu biểu thức là một bộ [chẳng hạn như

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
23 trong ví dụ trên], nó phải được đặt trong dấu ngoặc đơn.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
7

Khả năng hiểu danh sách có thể chứa các biểu thức phức tạp và các hàm lồng nhau

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
8

5. 1. 4. Hiểu danh sách lồng nhau¶

Biểu thức ban đầu của cách hiểu danh sách có thể là bất kỳ biểu thức tùy ý nào, bao gồm cả cách hiểu danh sách khác

Xem xét ví dụ sau về ma trận 3x4 được triển khai dưới dạng danh sách ba danh sách có độ dài 4

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
00

Việc hiểu danh sách sau đây sẽ chuyển đổi các hàng và cột

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
01

Như chúng ta đã thấy trong phần trước, khả năng hiểu danh sách lồng nhau được kiểm tra trong ngữ cảnh của

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
66 theo sau nó, vì vậy ví dụ này tương đương với

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
02

đến lượt nó cũng giống như

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
03

Trong thế giới thực, bạn nên ưu tiên các hàm được xác định trước hơn là các câu lệnh có luồng phức tạp. Hàm

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
25 sẽ hoạt động tốt cho trường hợp sử dụng này.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
04

Xem Giải nén danh sách đối số để biết chi tiết về dấu hoa thị trong dòng này.

5. 2. Hướng dẫn
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26¶

Có cách nào để xóa một mục khỏi danh sách được cung cấp chỉ mục thay vì giá trị của nó không. hướng dẫn

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26. Điều này khác với phương thức
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
63, trả về một giá trị. Lệnh
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26 cũng có thể được sử dụng để xóa các phần khỏi danh sách hoặc làm trống toàn bộ danh sách [điều mà chúng ta đã làm trước đây bằng cách gán một danh sách trống cho lát cắt]. Ví dụ

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
05

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26 cũng có thể được sử dụng để loại bỏ các biến

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
06

Tham chiếu tên

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
31 từ đây trở đi là do lỗi [ít nhất là cho đến khi nó được gán giá trị khác]. Chúng ta sẽ thấy các cách sử dụng khác của
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26 sau

5. 3. Bộ và chuỗi¶

Chúng tôi thấy rằng danh sách và chuỗi có các thuộc tính chung, chẳng hạn như lập chỉ mục và thao tác cắt. Dưới đây là hai ví dụ về các loại dữ liệu trình tự [xem Các loại trình tự — danh sách, bộ, phạm vi ]. Vì Python là một ngôn ngữ đang phát triển nên dữ liệu chuỗi khác có thể được thêm vào. Có một dữ liệu loại trình tự tiêu chuẩn khác. tuple.

Một tuple được tạo thành từ một số giá trị được phân tách bằng dấu phẩy, ví dụ

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
07

Như bạn có thể thấy, các bộ dữ liệu luôn được đặt trong dấu ngoặc đơn ở đầu ra để các bộ dữ liệu lồng nhau có thể được diễn giải chính xác; . Không thể gán cho các mục riêng lẻ của một bộ, nhưng bạn vẫn có thể tạo các bộ chứa các đối tượng có thể thay đổi, chẳng hạn như danh sách.

Mặc dù các bộ dữ liệu có thể giống danh sách nhưng chúng thường được sử dụng trong các tình huống khác nhau và cho các mục đích khác nhau. Các bộ dữ liệu bất biến và thường chứa một chuỗi các phần tử không đồng nhất được truy cập bằng cách giải nén [xem sau trong phần này] hoặc lập chỉ mục [hoặc thậm chí được truy cập bằng thuộc tính trong trường hợp của

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
33]. Danh sách có thể thay đổi và các phần tử của chúng thường đồng nhất và được truy cập bằng cách lặp qua danh sách.

Một vấn đề cụ thể là việc xây dựng các bộ chứa 0 hoặc 1 mục. cú pháp trình bày một số đặc thù cho những trường hợp này. Các bộ dữ liệu trống được xây dựng bằng cách sử dụng một cặp dấu ngoặc đơn trống; . xấu nhưng hiệu quả. Ví dụ

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
08

Khai báo

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
34 là một ví dụ về đóng gói tuple. các giá trị _______335,
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
36 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
37 được đóng gói cùng nhau trong một bộ. Hoạt động ngược lại cũng có thể

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
09

Điều này được gọi là, một cách thích hợp, giải nén trình tự và nó hoạt động cho bất kỳ trình tự nào ở phía bên tay phải của trình tự bằng nhau. Giải nén trình tự yêu cầu số lượng biến ở bên trái của dấu bằng bằng với kích thước của trình tự. Lưu ý rằng phép gán nhiều lần thực sự chỉ là sự kết hợp giữa đóng gói bộ dữ liệu và giải nén trình tự.

5. 4. Bộ¶

Python cũng bao gồm một kiểu dữ liệu cho các tập hợp. Tập hợp là tập hợp không có thứ tự không có phần tử lặp lại. Sử dụng cơ bản cho những điều này bao gồm xác minh tư cách thành viên và loại bỏ mục nhập trùng lặp. Các tập hợp cũng hỗ trợ các phép toán như hợp, giao, hiệu và hiệu đối xứng.

Các phím hoặc chức năng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
38 có thể được sử dụng để tạo các bộ. Lưu ý rằng để tạo một tập hợp trống, bạn phải sử dụng
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
38, không phải
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
70;

một bản demo nhỏ

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
20

Tương tự như khả năng hiểu danh sách , tính năng hiểu tập hợp cũng được hỗ trợ.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
21

5. 5. Từ điển¶

Một loại dữ liệu hữu ích khác có trong Python là từ điển [xem Các loại bản đồ — dict ]. Từ điển đôi khi được tìm thấy trong các ngôn ngữ khác dưới dạng "bộ nhớ liên kết" hoặc "mảng liên kết". Không giống như các chuỗi, được lập chỉ mục bởi một phạm vi số, từ điển được lập chỉ mục bởi các khóa, có thể là bất kỳ loại bất biến nào; . Các bộ dữ liệu có thể được sử dụng làm khóa nếu chúng chỉ chứa các chuỗi, số hoặc bộ dữ liệu; . Bạn không thể sử dụng danh sách làm khóa, vì danh sách có thể được sửa đổi bằng cách gán chỉ mục, gán phần hoặc các phương pháp như

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
62 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
72.

Tốt hơn nên coi từ điển là một tập hợp các cặp khóa. giá trị với yêu cầu các khóa là duy nhất [trong từ điển]. Một cặp dấu ngoặc nhọn tạo ra một từ điển trống.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
70. Đặt một danh sách các cặp khóa. giá trị được phân tách bằng dấu phẩy bên trong các khóa thêm các cặp khóa. giá trị ban đầu cho từ điển;

Các hoạt động chính trên từ điển là lưu trữ một giá trị bằng một khóa và truy xuất giá trị đó đã cung cấp cho khóa. Cũng có thể xóa một cặp khóa. giá trị với

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26. Nếu bạn sử dụng một khóa đã được sử dụng để lưu trữ một giá trị, thì giá trị được liên kết với khóa đó sẽ bị mất. Có lỗi khi trích xuất một giá trị bằng khóa không tồn tại

Chạy

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
75 trên từ điển sẽ trả về danh sách tất cả các khóa được sử dụng trong từ điển, theo thứ tự chèn [nếu bạn muốn nó được sắp xếp, chỉ cần sử dụng
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
76 thay thế]. Để kiểm tra xem một khóa có trong từ điển hay không, hãy sử dụng từ khóa
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
77

Một ví dụ nhỏ về việc sử dụng từ điển

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
22

Hàm tạo

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
78 tạo từ điển trực tiếp từ chuỗi các cặp khóa-giá trị

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
23

Ngoài ra, khả năng hiểu từ điển có thể được sử dụng để tạo từ điển từ các biểu thức khóa-giá trị tùy ý.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
24

Khi các khóa là các chuỗi đơn giản, đôi khi việc chỉ định các cặp bằng cách sử dụng các đối số từ khóa sẽ dễ dàng hơn

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
25

5. 6. Kỹ thuật lặp¶

Khi chúng ta lặp qua các từ điển, khóa và giá trị tương ứng của nó có thể được lấy cùng lúc bằng cách sử dụng phương thức

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
79

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
26

Khi lặp qua một chuỗi, bạn có thể lấy chỉ số vị trí cùng với giá trị tương ứng của nó bằng cách sử dụng hàm

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
80

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
27

Để lặp lại hai hoặc nhiều chuỗi cùng một lúc, các giá trị có thể được khớp với hàm

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
25

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
28

Để lặp lại một chuỗi theo thứ tự ngược lại, trước tiên hãy chỉ định chuỗi bên phải và sau đó gọi hàm

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
82

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
29

Để lặp lại một chuỗi có thứ tự, hàm

squares = list[map[lambda x: x**2, range[10]]]
4 được sử dụng, hàm này trả về một danh sách có thứ tự mới giữ nguyên danh sách ban đầu.

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
0

Sử dụng

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
38 theo trình tự sẽ loại bỏ các mục trùng lặp. Sử dụng
squares = list[map[lambda x: x**2, range[10]]]
4 kết hợp với
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
38 trên một chuỗi là một cách thành ngữ để duyệt qua các phần tử duy nhất của chuỗi đã sắp xếp

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
1

Đôi khi bạn cố gắng thay đổi một danh sách trong khi lặp đi lặp lại nó;

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2

5. 7. Thông tin thêm về điều kiện¶

Các điều kiện được sử dụng trong hướng dẫn

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
87 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
68 có thể chứa bất kỳ toán tử nào, không chỉ so sánh

Các toán tử so sánh

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
77 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
000 kiểm tra xem một giá trị có xảy ra [hoặc không xảy ra] trong một chuỗi hay không. Các toán tử
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
001 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
002 so sánh xem hai đối tượng có thực sự là cùng một đối tượng hay không. Tất cả các toán tử so sánh đều có cùng mức ưu tiên, thấp hơn so với tất cả các toán tử số

So sánh có thể được xâu chuỗi. Ví dụ:

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
003 kiểm tra xem
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
31 có nhỏ hơn
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
005 hay không và nếu
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
005 bằng với
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
007

Các phép so sánh có thể được kết hợp bằng cách sử dụng các toán tử Boolean

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
008 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
009, và kết quả của một phép so sánh [hoặc bất kỳ biểu thức Boolean nào khác] có thể được phủ định bằng
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
010. Chúng có mức độ ưu tiên thấp hơn so với toán tử so sánh; . Như mọi khi, dấu ngoặc đơn có thể được sử dụng để thể hiện thành phần mong muốn.

Toán tử Boolean

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
008 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
009 được gọi là toán tử ngắn mạch. các đối số của nó được đánh giá từ trái sang phải và quá trình đánh giá dừng lại tại thời điểm kết quả của nó được xác định. Ví dụ: nếu
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
017 và
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
018 là đúng nhưng
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
019 là sai, thì trong
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
020 biểu thức
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
018 không được đánh giá. Khi được sử dụng làm giá trị chung chứ không phải dưới dạng Boolean, giá trị trả về của toán tử đoản mạch là đối số cuối cùng được đánh giá.

Có thể gán kết quả của phép so sánh hoặc biểu thức Boolean khác cho một biến. Ví dụ,

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3

Lưu ý rằng trong Python, không giống như C, các phép gán trong biểu thức phải được thực hiện rõ ràng bằng toán tử hải mã

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
022. Điều này khắc phục một số vấn đề phổ biến được tìm thấy trong C. viết _______ 2023 trong một biểu thức khi cố gắng viết _______ 2024.

5. 8. So sánh trình tự và các loại khác¶

Trình tự có thể được so sánh với các đối tượng khác cùng loại trình tự. Việc so sánh sử dụng thứ tự từ điển. đầu tiên hai mục đầu tiên được so sánh, nếu chúng khác nhau, điều này đã xác định kết quả so sánh; . Nếu hai mục được so sánh là cả hai chuỗi cùng loại, so sánh từ điển là đệ quy. Nếu tất cả các mục trong hai chuỗi bằng nhau, các chuỗi được coi là bằng nhau. Nếu một dãy là phần đầu của dãy kia, thì dãy ngắn hơn là dãy nhỏ hơn. Thứ tự từ điển của các chuỗi ký tự sử dụng điểm mã Unicode để sắp xếp các ký tự riêng lẻ. Một số ví dụ so sánh giữa các dãy cùng loại

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
4

Lưu ý rằng việc so sánh các đối tượng thuộc các loại khác nhau với

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
025 hoặc
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
026 là hợp pháp miễn là các đối tượng có phương pháp so sánh phù hợp. Ví dụ: các loại số hỗn hợp được so sánh theo giá trị số của chúng, tức là 0 bằng 0. 0, v.v. Nếu đây không phải là trường hợp, thay vì đưa ra một mệnh lệnh tùy ý, trình thông dịch sẽ đưa ra một ngoại lệ
>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
027

chú thích

1

Các ngôn ngữ khác có thể trả về một đối tượng bị đột biến, cho phép xâu chuỗi phương thức như

>>> squares = []
>>> for x in range[10]:
..     squares.append[x**2]
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
028

Làm cách nào để thêm mọi thứ vào từ điển?

Để thêm phần tử vào từ điển , chỉ cần tham chiếu khóa và gán giá trị cho khóa. Nếu khóa đã tồn tại trong từ điển , thì giá trị hiện tại sẽ được thay thế bằng giá trị mới. Nếu là khóa mới, nó sẽ được thêm vào từ điển cùng với giá trị của nó. Chúng tôi sẽ không gặp lỗi không giống như danh sách.

Làm cách nào để lưu trữ dữ liệu trong từ điển bằng Python?

Từ điển Python diccionarios en Python cho phép chúng tôi lưu trữ một mảng ánh xạ giữa hai bộ phần tử, được gọi là khóa và giá trị. Tất cả các mục trong từ điển được đặt trong một cặp dấu ngoặc vuông {}.

Làm cách nào để thêm các mục vào danh sách bên trong từ điển Python?

Chúng ta có thể gọi phương thức append[] để add một phần tử thuộc bất kỳ loại nào ở cuối danh sách . Mặc dù có những lựa chọn thay thế khác tạo ra hiệu ứng tương tự trong danh sách , trong thực tế chúng ta thường sử dụng phương thức append[] vì đây là phương thức rất hữu ích trong Python và cú pháp của nó ngắn gọn.

Làm cách nào để cập nhật dữ liệu từ từ điển trong Python?

Trong Từ điển của Python , bản cập nhật [ ] cập nhật từ điển với các thành phần của đối tượng từ điển khác hoặc của một cặp khóa/giá trị có thể lặp lại. thông số. phương thức này lấy một từ điển hoặc một đối tượng có thể lặp lại của các cặp khóa/giá trị [thường là bộ dữ liệu] làm tham số.

Chủ Đề