Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Khi sử dụng chúng, tôi lập một bảng đầy đủ các phương pháp của chúng để bạn tham khảo

class ContainerMethods:
    def __init__(self):
        self.list_methods_11 = {
                    'Add':{'append','extend','insert'},
                    'Subtract':{'pop','remove'},
                    'Sort':{'reverse', 'sort'},
                    'Search':{'count', 'index'},
                    'Entire':{'clear','copy'},
                            }
        self.tuple_methods_2 = {'Search':'count','index'}

        self.dict_methods_11 = {
                    'Views':{'keys', 'values', 'items'},
                    'Add':{'update'},
                    'Subtract':{'pop', 'popitem',},
                    'Extract':{'get','setdefault',},
                    'Entire':{ 'clear', 'copy','fromkeys'},
                            }
        self.set_methods_17 ={
                    'Add':{['add', 'update'],['difference_update','symmetric_difference_update','intersection_update']},
                    'Subtract':{'pop', 'remove','discard'},
                    'Relation':{'isdisjoint', 'issubset', 'issuperset'},
                    'operation':{'union' 'intersection','difference', 'symmetric_difference'}
                    'Entire':{'clear', 'copy'}}

Chúng ta đã làm quen với các danh sách trong chương trước. Trong chương này của khóa học Python trực tuyến của chúng tôi, chúng tôi sẽ trình bày về từ điển, toán tử và phương thức trên từ điển. Các chương trình hoặc tập lệnh Python không có danh sách và từ điển gần như không thể tưởng tượng được. Từ điển và các triển khai mạnh mẽ của chúng là một phần khiến Python trở nên hiệu quả và vượt trội. Giống như các danh sách, chúng có thể dễ dàng thay đổi, có thể thu nhỏ và phát triển tùy ý trong thời gian chạy. Chúng thu nhỏ và phát triển mà không cần tạo bản sao. Từ điển có thể được chứa trong danh sách và ngược lại

Nhưng sự khác biệt giữa danh sách và từ điển là gì? . Tuy nhiên, sự khác biệt chính là các mục trong từ điển được truy cập thông qua các phím và không thông qua vị trí của chúng

Về mặt lý thuyết hơn, chúng ta có thể nói rằng từ điển là triển khai Python của một kiểu dữ liệu trừu tượng, được biết đến trong khoa học máy tính dưới dạng một mảng kết hợp. Mảng kết hợp bao gồm - giống như từ điển của các cặp (khóa, giá trị), sao cho mỗi khóa có thể xuất hiện nhiều nhất một lần trong bộ sưu tập. Bất kỳ khóa nào của từ điển được liên kết (hoặc ánh xạ) với một giá trị. Các giá trị của từ điển có thể là bất kỳ loại dữ liệu Python nào. Vì vậy, từ điển là các cặp khóa-giá trị không có thứ tự. Từ điển được triển khai dưới dạng bảng băm và đó là lý do tại sao chúng được gọi là "Băm" trong ngôn ngữ lập trình Perl

Từ điển không hỗ trợ hoạt động trình tự của các loại dữ liệu trình tự như chuỗi, bộ dữ liệu và danh sách. Từ điển thuộc loại ánh xạ tích hợp, nhưng cho đến nay, chúng là đại diện duy nhất của loại này

Ở cuối chương này, chúng ta sẽ trình bày cách biến một từ điển thành một danh sách, chứa các bộ (key,value)-tuple hoặc hai danh sách, i. e. một với các phím và một với các giá trị. Việc chuyển đổi này cũng có thể được thực hiện ngược lại

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Ví dụ về từ điển

Ví dụ đầu tiên của chúng tôi là một từ điển với các thành phố ở Hoa Kỳ và Canada và dân số tương ứng của chúng. Chúng tôi đã lấy những con số đó từ "Danh sách các thành phố Bắc Mỹ theo dân số" từ Wikipedia

Nếu chúng ta muốn lấy dân số của một trong những thành phố đó, tất cả những gì chúng ta phải làm là sử dụng tên của thành phố làm chỉ mục. Chúng ta có thể thấy rằng các từ điển được đặt trong dấu ngoặc nhọn. Chúng chứa các cặp giá trị chính. Một khóa và giá trị tương ứng của nó được phân tách bằng dấu hai chấm

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}

ĐẦU RA

8550405

Chúng tôi có thể truy cập giá trị cho một khóa cụ thể bằng cách đặt khóa này trong ngoặc sau tên của từ điển

city_population["New York City"]

ĐẦU RA

8550405

city_population["Toronto"]

ĐẦU RA

2731571

city_population["Boston"]

ĐẦU RA

________số 8

Điều gì xảy ra, nếu chúng tôi cố gắng truy cập một khóa, tôi. e. một thành phố trong ví dụ của chúng tôi, không có trong từ điển?

city_population["Detroit"]

ĐẦU RA

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
0

Một câu hỏi thường gặp là nếu các đối tượng từ điển được sắp xếp. Sự không chắc chắn phát sinh từ thực tế là các từ điển không được sắp xếp trong các phiên bản trước Python 3. 7. Trong Trăn 3. 7 và tất cả các phiên bản mới hơn, từ điển được sắp xếp theo thứ tự chèn mục. Trong ví dụ của chúng tôi, điều này có nghĩa là từ điển giữ thứ tự mà chúng tôi đã xác định từ điển. Bạn có thể thấy điều này bằng cách in từ điển

8550405
0

ĐẦU RA

8550405
1

Tuy nhiên, đặt hàng không có nghĩa là bạn có cách gọi trực tiếp phần tử thứ n của từ điển. Vì vậy, cố gắng truy cập từ điển bằng một số - giống như chúng ta làm với danh sách - sẽ dẫn đến một ngoại lệ

8550405
2

ĐẦU RA

8550405
3

Rất dễ dàng để thêm một mục khác vào một từ điển hiện có

8550405
4

ĐẦU RA

8550405
5

Vì vậy, có thể tạo từ điển dần dần bằng cách bắt đầu với một từ điển trống. Cho đến nay, chúng tôi vẫn chưa đề cập đến cách xác định một cái trống. Nó có thể được thực hiện bằng cách sử dụng một cặp dấu ngoặc trống. Sau đây định nghĩa một từ điển trống có tên là thành phố

8550405
6

8550405
7

Nhìn vào các ví dụ đầu tiên của chúng tôi với các thành phố và dân số của chúng, bạn có thể đã có ấn tượng sai lầm rằng các giá trị trong từ điển phải khác nhau. Các giá trị có thể giống nhau, như bạn có thể thấy trong ví dụ sau. Để vinh danh vị thánh bảo trợ của Python "Monty Python", giờ đây chúng ta sẽ có một số từ điển thực phẩm đặc biệt. Python là gì nếu không có "thịt xông khói", "trứng" và "thư rác"?

8550405
8

Các khóa của một từ điển là duy nhất. Trong trường hợp một khóa được xác định nhiều lần, giá trị của "chiến thắng" cuối cùng

8550405
9

Ví dụ tiếp theo của chúng tôi là một từ điển Anh-Đức đơn giản

city_population["New York City"]
0

Còn việc có một từ điển ngôn ngữ khác, chẳng hạn như tiếng Đức-Pháp thì sao?

Bây giờ thậm chí có thể dịch từ tiếng Anh sang tiếng Pháp, mặc dù chúng tôi không có từ điển Anh-Pháp. de_fr[en_de["red"]] cho chúng ta từ tiếng Pháp có nghĩa là "màu đỏ", tôi. e. "đỏ"

city_population["New York City"]
1

city_population["New York City"]
2

city_population["New York City"]
3

Chúng tôi có thể sử dụng các loại tùy ý làm giá trị trong từ điển, nhưng có một hạn chế đối với các khóa. Chỉ các kiểu dữ liệu bất biến mới có thể được sử dụng làm khóa, tôi. e. không có danh sách hoặc từ điển có thể được sử dụng. Nếu bạn sử dụng loại dữ liệu có thể thay đổi làm khóa, bạn sẽ nhận được thông báo lỗi

city_population["New York City"]
4

Tuple as keys là được, như bạn có thể thấy trong ví dụ sau

city_population["New York City"]
5

Hãy cải thiện các ví dụ của chúng ta với từ điển ngôn ngữ tự nhiên một chút. Chúng tôi tạo ra một từ điển của từ điển

city_population["New York City"]
6

city_population["New York City"]
7

Từ điển của từ điển

city_population["New York City"]
8

city_population["New York City"]
9

8550405
0

8550405
1

8550405
2

8550405
3

8550405
4

8550405
5

8550405
6

8550405
7

8550405
8

8550405
9

Toán tử trong từ điển

OperatorExplanationlen(d)trả về số lượng mục được lưu trữ, i. e. số cặp (khóa, giá trị). del d[k]xóa khóa k cùng với giá trị k của nó trong dTrue, nếu khóa k tồn tại trong từ điển dk không có trong dTrue, nếu khóa k không tồn tại trong từ điển d

ví dụ. Từ điển sau chứa ánh xạ từ các ký tự Latinh sang mã morsecode

city_population["Toronto"]
0

Nếu bạn lưu từ điển này dưới dạng morsecode. py, bạn có thể dễ dàng làm theo các ví dụ sau. Lúc đầu, bạn phải nhập từ điển này

city_population["Toronto"]
1

Số ký tự có trong từ điển này có thể được xác định bằng cách gọi hàm len

city_population["Toronto"]
2

Từ điển chỉ chứa các ký tự chữ hoa, ví dụ: "a" trả về Sai

city_population["Toronto"]
3

city_population["Toronto"]
4

city_population["Toronto"]
5

city_population["Toronto"]
6

city_population["Toronto"]
7

city_population["Toronto"]
8

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

Các khóa học trực tuyến sắp tới

Khái niệm cơ bản về Python cho người mới bắt đầu

Khóa học nâng cao chuyên sâu

Python dành cho kỹ sư và nhà khoa học

Lập trình hướng đối tượng với Python

đăng ký tại đây

pop() và popitem()

nhạc pop

Danh sách có thể được sử dụng làm ngăn xếp và toán tử pop() được sử dụng để lấy một phần tử từ ngăn xếp. Cho đến nay, rất tốt cho các danh sách, nhưng có hợp lý không khi có một phương thức pop() cho từ điển? . e. không có thứ tự và không có chỉ mục. Do đó, pop() được định nghĩa khác với từ điển. Các khóa và giá trị được triển khai theo thứ tự tùy ý, không phải ngẫu nhiên mà phụ thuộc vào việc triển khai. Nếu D là từ điển thì D. pop(k) xóa khóa k cùng với giá trị của nó khỏi từ điển D và trả về giá trị tương ứng làm giá trị trả về, i. e. Đ[k]

city_population["Toronto"]
9

Nếu không tìm thấy khóa, lỗi KeyError sẽ xuất hiện

2731571
0

Nếu chúng ta cố gắng tìm ra thủ đô của Thụy Sĩ trong ví dụ trước, chúng ta sẽ gặp lỗi KeyError. Để ngăn chặn những lỗi này, có một cách tao nhã. Phương thức pop() có tham số thứ hai tùy chọn, có thể được sử dụng làm giá trị mặc định

2731571
1

2731571
2

2731571
3

dân chúng

popitem() là một phương thức của dict, không nhận bất kỳ tham số nào, loại bỏ và trả về một cặp (khóa, giá trị) tùy ý dưới dạng 2-tuple. Nếu popitem() được áp dụng trên một từ điển trống, KeyError sẽ xuất hiện

2731571
4

2731571
5

2731571
5

2731571
5

2731571
5

Truy cập các khóa không tồn tại

Nếu bạn cố truy cập một khóa không tồn tại, bạn sẽ nhận được thông báo lỗi

2731571
9

Bạn có thể ngăn chặn điều này bằng cách sử dụng toán tử "in"

city_population["Boston"]
0

Một phương pháp khác để truy cập các giá trị thông qua khóa là sử dụng phương thức get(). get() không gây ra lỗi, nếu một chỉ mục không tồn tại. Trong trường hợp này, nó sẽ trả về Không. Cũng có thể đặt giá trị mặc định, giá trị này sẽ được trả về nếu chỉ mục không tồn tại

city_population["Boston"]
1

city_population["Boston"]
2

city_population["Boston"]
3

city_population["Boston"]
4

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

phương pháp quan trọng

Một từ điển có thể được sao chép bằng phương thức copy()

sao chép()

city_population["Boston"]
5

city_population["Boston"]
6

Bản sao này là bản sao nông, không phải bản sao sâu. Ví dụ: nếu một giá trị là một loại dữ liệu phức tạp như danh sách, thì các thay đổi tại chỗ trong đối tượng này cũng có tác dụng đối với bản sao

city_population["Boston"]
7

Nếu chúng tôi kiểm tra đầu ra, chúng tôi có thể thấy rằng tiêu đề của khóa học 2 đã được thay đổi không chỉ trong khóa đào tạo từ điển mà cả trong khóa đào tạo2

Mọi thứ hoạt động theo cách bạn mong đợi, nếu bạn gán một giá trị mới, tôi. e. một đối tượng mới, đến một khóa

city_population["Boston"]
8

Nếu bạn muốn hiểu lý do của hành vi này, chúng tôi khuyên bạn nên xem chương "Sao chép nông và sâu"

xa lạ()

Nội dung của từ điển có thể được xóa bằng phương thức clear(). Từ điển không bị xóa nhưng được đặt thành từ điển trống

city_population["Boston"]
9

Cập nhật. Hợp nhất từ ​​điển

Còn việc nối các từ điển, giống như chúng ta đã làm với các danh sách thì sao? . phương thức cập nhật update() hợp nhất các khóa và giá trị của từ điển này sang từ điển khác, ghi đè lên các giá trị của cùng một khóa

667137
0

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Lặp lại từ điển

Không cần phương thức nào để lặp lại các khóa của từ điển

667137
1

Tuy nhiên, có thể sử dụng phương thức keys(), chúng ta sẽ nhận được kết quả tương tự

667137
2

Các giá trị phương thức() là một cách thuận tiện để lặp lại trực tiếp trên các giá trị

667137
3

Vòng lặp trên tương đương logic với vòng lặp sau

667137
4

Chúng tôi đã nói một cách hợp lý, bởi vì cách thứ hai kém hiệu quả hơn

Nếu bạn đã quen với khả năng về thời gian của ipython, bạn có thể đo thời gian được sử dụng cho hai lựa chọn thay thế

667137
5

667137
6

Kết nối giữa Danh sách và Từ điển

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Nếu bạn đã làm việc một thời gian với Python, gần như chắc chắn sẽ đến lúc bạn muốn hoặc phải chuyển đổi danh sách thành từ điển hoặc ngược lại. Sẽ không quá khó để viết một hàm làm việc này. Nhưng Python sẽ không phải là Python nếu nó không cung cấp các chức năng như vậy

Nếu chúng ta có một cuốn từ điển

667137
7

chúng ta có thể biến danh sách này thành một danh sách có hai bộ

667137
8

Danh sách L và từ điển D chứa nội dung giống nhau, i. e. nội dung thông tin hoặc để diễn đạt "Entropy của L và D là như nhau" một cách có ý nghĩa. Tất nhiên, thông tin từ danh sách L khó lấy hơn từ từ điển D. Để tìm một khóa nào đó trong L, chúng ta sẽ phải duyệt qua các bộ của danh sách và so sánh các thành phần đầu tiên của các bộ với khóa mà chúng ta đang tìm. Tra cứu từ điển được thực hiện ngầm để đạt hiệu quả tối đa

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Danh sách từ điển

Có thể tạo danh sách từ các từ điển bằng cách sử dụng các phương thức items(), keys() và values(). Đúng như tên gọi, phương thức keys() tạo một danh sách, danh sách này chỉ bao gồm các khóa của từ điển. values() tạo ra một danh sách bao gồm các giá trị. items() có thể được sử dụng để tạo danh sách bao gồm 2 bộ (key,value)-cặp

667137
9

city_population["Detroit"]
0

city_population["Detroit"]
1

city_population["Detroit"]
2

city_population["Detroit"]
3

city_population["Detroit"]
4

Nếu chúng ta áp dụng phương thức items() cho một từ điển, chúng ta sẽ không lấy lại danh sách, như trường hợp đã từng xảy ra trong Python 2, mà là chế độ xem các mục. Chế độ xem mục có thể được chuyển thành danh sách bằng cách áp dụng chức năng danh sách. Chúng tôi không bị mất thông tin bằng cách biến từ điển thành chế độ xem mục hoặc danh sách mục, tôi. e. có thể tạo lại từ điển gốc từ chế độ xem được tạo bởi items(). Mặc dù danh sách 2 bộ này có cùng entropy, tôi. e. nội dung thông tin là như nhau, hiệu quả của cả hai phương pháp là hoàn toàn khác nhau. Kiểu dữ liệu từ điển cung cấp các phương thức hiệu quả cao để truy cập, xóa và thay đổi các thành phần của từ điển, trong khi trong trường hợp danh sách, các chức năng này phải được lập trình viên thực hiện

Biến danh sách thành từ điển

Bây giờ chúng ta sẽ chú ý đến nghệ thuật nấu ăn, nhưng đừng sợ, đây vẫn là khóa học về trăn chứ không phải khóa học nấu ăn. Chúng tôi muốn chỉ cho bạn cách biến danh sách thành từ điển, nếu những danh sách này đáp ứng một số điều kiện nhất định. Chúng tôi có hai danh sách, một danh sách chứa các món ăn và danh sách còn lại là các quốc gia tương ứng

Bây giờ chúng ta sẽ tạo một từ điển, trong đó gán một món ăn, một món ăn đặc trưng của quốc gia, cho một quốc gia; . Với mục đích này, chúng ta cần hàm zip(). Tên zip đã được chọn đúng vì hai danh sách được kết hợp với nhau, hoạt động giống như một dây kéo. Kết quả là một trình lặp danh sách. 1 Điều này có nghĩa là chúng ta phải bọc hàm truyền list() xung quanh lệnh gọi zip để lấy danh sách để chúng ta có thể xem điều gì đang xảy ra

city_population["Detroit"]
5

city_population["Detroit"]
6

Ngoài ra, bạn có thể lặp lại đối tượng zip trong vòng lặp for. Bằng cách này, chúng tôi không tạo danh sách, điều này hiệu quả hơn, nếu chúng tôi chỉ muốn lặp lại các giá trị và không cần danh sách

city_population["Detroit"]
7

Bây giờ các món ăn đặc trưng của đất nước chúng tôi ở dạng danh sách, - tôi. e. một danh sách gồm hai bộ, trong đó các thành phần đầu tiên được xem là khóa và các thành phần thứ hai là giá trị - có thể tự động chuyển thành từ điển bằng cách chuyển nó bằng dict()

city_population["Detroit"]
8

Tuy nhiên, điều này rất không hiệu quả, bởi vì chúng tôi đã tạo một danh sách gồm 2 bộ để biến danh sách này thành một lệnh chính tả. Điều này có thể được thực hiện trực tiếp bằng cách áp dụng dict cho zip

city_population["Detroit"]
9

Vẫn còn một câu hỏi liên quan đến hàm zip(). Điều gì xảy ra nếu một trong hai danh sách đối số chứa nhiều phần tử hơn danh sách còn lại?

Thật dễ dàng để trả lời. Các phần tử thừa, không ghép được sẽ bỏ qua

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
00

Vì vậy, trong khóa học này, chúng tôi sẽ không trả lời câu hỏi món ăn quốc gia của Thụy Sĩ là gì

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Mọi thứ trong một bước

Thông thường, chúng tôi khuyên bạn không nên thực hiện quá nhiều bước trong một biểu thức lập trình, mặc dù nó trông ấn tượng hơn và mã gọn gàng hơn. Sử dụng tên biến "biết nói" trong các bước trung gian có thể nâng cao mức độ dễ đọc. Mặc dù việc tạo từ điển trước đây của chúng tôi chỉ trong một lần có thể rất hấp dẫn

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
01

Tất nhiên, nó dễ đọc hơn như thế này

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
02

Chúng tôi nhận được kết quả tương tự, như thể chúng tôi sẽ gọi nó trong một lần

Nguy hiểm rình rập

Đặc biệt đối với những người chuyển từ Python 2. x sang Python 3. x. zip() được sử dụng để trả về một danh sách, giờ nó đang trả về một trình vòng lặp. Bạn phải nhớ rằng các trình vòng lặp sẽ tự cạn kiệt, nếu chúng được sử dụng. Bạn có thể thấy điều này trong phiên tương tác sau

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
03

Hiệu ứng này cũng có thể được nhìn thấy bằng cách gọi toán tử truyền danh sách

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
04

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
05

Như một bài tập, bạn có thể suy ngẫm về kịch bản sau. Tại sao chúng tôi nhận được một thư mục trống bằng cách gọi

8550405
05?

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
06

bài tập

bài tập 1

Viết hàm dict_merge_sum nhận hai từ điển

8550405
06 và
8550405
07 làm tham số. Các giá trị của cả hai từ điển là số. Hàm sẽ trả về từ điển tổng hợp nhất
8550405
08 của các từ điển đó. Nếu khóa
8550405
09 có cả trong
8550405
06 và
8550405
07, các giá trị tương ứng sẽ được thêm vào và đưa vào từ điển
8550405
08 Nếu
8550405
09 chỉ có trong một trong các từ điển, thì
8550405
09 và giá trị tương ứng sẽ được đưa vào
8550405
08

Bài tập 2

Cho dữ liệu đơn giản sau của một siêu thị

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
07

Để sẵn sàng cho một cuộc khủng hoảng sắp xảy ra, bạn quyết định mua mọi thứ. Đây không phải là hành vi xã hội đặc biệt, nhưng vì nhiệm vụ, hãy tưởng tượng nó. Câu hỏi đặt ra là bạn sẽ phải trả bao nhiêu?

bài tập 3

  • Tạo siêu thị ảo. Đối với mỗi bài viết có một mức giá cho mỗi bài viết và một số lượng, tôi. e. chứng khoán. (Dấu. bạn có thể sử dụng cái từ bài tập trước. )
  • Tạo danh sách mua sắm cho khách hàng. Danh sách mua sắm chứa các mặt hàng cộng với số lượng
  • Các khách hàng lần lượt lấp đầy giỏ hàng của họ. Kiểm tra xem có đủ hàng không. Tạo hóa đơn cho từng khách hàng

bài tập 4

Given là hòn đảo của Vannoth

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Tạo một từ điển, nơi chúng tôi nhận được cho mọi thành phố Vannoth khoảng cách đến thủ đô Rogeburgh

bài tập 5

Tạo một từ điển nơi bạn có thể lấy khoảng cách giữa hai thành phố tùy ý

Đào tạo Python trực tiếp

Sự khác biệt giữa danh sách và từ điển trong python lớp 11

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Các giải pháp

Giải bài tập 1

Chúng tôi cung cấp hai giải pháp cho bài tập này

Đầu tiên là chỉ sử dụng những thứ bạn sẽ học được, nếu bạn theo dõi tuần tự khóa học Python của chúng tôi. Giải pháp thứ hai sử dụng các kỹ thuật sẽ được đề cập sau trong hướng dẫn của chúng tôi

giải pháp đầu tiên

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
08

giải pháp thứ hai

city_population = {"New York City": 8_550_405, 
                   "Los Angeles": 3_971_883, 
                   "Toronto": 2_731_571, 
                   "Chicago": 2_720_546, 
                   "Houston": 2_296_224, 
                   "Montreal": 1_704_694, 
                   "Calgary": 1_239_220, 
                   "Vancouver": 631_486, 
                   "Boston": 667_137}
09

Giải bài tập 2

8550405
00

Giải bài tập 3

8550405
01

Giải pháp thay thế cho bài tập 3, trong đó chúng tôi tạo danh sách cắt ngẫu nhiên

8550405
02

Giải bài tập 4

8550405
03

Lời giải bài tập 5

8550405
04

chú thích

1 Nếu bạn muốn tìm hiểu thêm về cách thức hoạt động của trình vòng lặp và cách sử dụng chúng, chúng tôi khuyên bạn nên xem qua chương Trình vòng lặp và Trình tạo của chúng tôi

Danh sách và từ điển khác nhau như thế nào?

Nhưng sự khác biệt giữa danh sách và từ điển là gì? . Tuy nhiên, sự khác biệt chính là các mục trong từ điển được truy cập thông qua các phím và không thông qua vị trí của chúng. A list is an ordered sequence of objects, whereas dictionaries are unordered sets. However, the main difference is that items in dictionaries are accessed via keys and not via their position.

Sự khác biệt giữa tập hợp và từ điển trong Python là gì?

Một bộ cũng đề cập đến cấu trúc dữ liệu thuộc loại không đồng nhất, nhưng nó lưu trữ nhiều phần tử khác nhau trong một hàng. Từ điển cũng đề cập đến cấu trúc dữ liệu thuộc loại không đồng nhất có chức năng lưu trữ các cặp khóa-giá trị. Nó cho phép các yếu tố trùng lặp khác nhau. Nó cho phép các yếu tố trùng lặp khác nhau

Danh sách hay từ điển nào tốt hơn trong Python?

Do đó, từ điển nhanh hơn danh sách trong Python . Sẽ hiệu quả hơn khi sử dụng từ điển để tra cứu các phần tử vì nó nhanh hơn danh sách và mất ít thời gian hơn để duyệt qua. Hơn nữa, danh sách giữ thứ tự của các phần tử trong khi từ điển thì không.

Điểm giống nhau giữa danh sách và từ điển trong Python là gì?

Sự giống nhau. Cả Danh sách và Từ điển đều là kiểu dữ liệu có thể thay đổi . sự không giống nhau. Danh sách là kiểu dữ liệu tuần tự i. e. chúng được lập chỉ mục. Từ điển là một kiểu dữ liệu ánh xạ.