Hướng dẫn what is {} called in python? - {} được gọi là gì trong python?

Phạm vi giằng xoăn, tự động hóa và các phương pháp khác để viết mã tốt hơn

Ảnh của Josh Kahen trên unplash

Python sẽ luôn tìm thấy một cái gì đó để làm chúng tôi ngạc nhiên - đơn giản là có quá nhiều tính năng tuyệt vời được nhồi nhét vào ngôn ngữ. May mắn thay, điều này có nghĩa là chúng tôi không bao giờ hết mọi thứ để học.ython will always find something to surprise us with — there are simply far too many brilliant features crammed into the language. Fortunately, this means we never run out of things to learn.

Theo thời gian, tôi đã xây dựng thói quen ghi chú mọi tính năng mới mà tôi vấp ngã trong Python. Chủ yếu là họ rất thú vị nhưng đi kèm với các trường hợp sử dụng khá hẹp.

Tuy nhiên, những lần khác, tôi vấp phải một tính năng thực sự rất có thể áp dụng được - và thông thường, nó sẽ thay đổi cách tôi mã. Tôi theo dõi những điều này với một danh sách và bài viết này bao gồm năm tính năng yêu thích của tôi từ danh sách đó.

Get Method for Dictionaries - no more KeyErrors
Tree Datatypes - or autovivification
Advanced List Indexing - [::3]?
Decorator Functions - those @ things
Denote Scopes with Braces - not whitespace [my favorite feature]

Nhận phương pháp cho từ điển

Phương pháp từ điển

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
9 thực hiện thao tác tương tự như cú pháp
dictionary.get['three']
0 phổ biến hơn với một sự khác biệt đáng kể - chúng tôi không có lỗi nếu
dictionary.get['three']
1 không tồn tại trong từ điển của chúng tôi:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']

dictionary.get['three']
2

Với GET -get

dictionary.get['three']

dictionary.get['three']
3

Thay vì trả về KeyError, phương thức

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
9 không trả về không.KeyError, the
dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
9 method returns None.

Chúng ta có thể tiến thêm một bước bằng cách chỉ định giá trị để trả về nếu

dictionary.get['three']
1 không tồn tại với đối số thứ hai của phương thức
dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
9:

dictionary.get['three', False]

dictionary.get['three']
7

dictionary.get['three', "doesn't exist"]

dictionary.get['three']
8

Cuối cùng, nếu bạn biết nội dung của từ điển của bạn - đừng sử dụng

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
9 thì nó chậm hơn! [Cảm ơn Petru]

Kiểu dữ liệu cây

Một kiểu dữ liệu cây trông như thế này:

Biểu diễn cây của các từ trong một câu và các phần tương ứng của chúng của các thẻ lời nói [POS]. Nguồn: Tác giả.

Nó đại diện cho một cấu trúc cây phân cấp với giá trị gốc ở lớp trên cùng, phân nhánh thành các nút con. Mỗi nút con có một nút cha và mỗi nút cha có thể có một hoặc nhiều nút con.

Bây giờ, đại diện của chúng tôi trong Python sẽ rất giống với một từ điển lồng nhau, mà chúng tôi sẽ xây dựng như thế này:

tree = {
'carnivora': {
'canis': {
'c.lupus': 'c.l.familiaris'
},
'felis': 'f.catus'
}
}

Ở đây chúng ta cần xác định một từ điển mới cho mỗi nút trẻ, từng bước một.

Nó rất chậm, lộn xộn và dễ bị lỗi-hãy tưởng tượng điều này cho một cây năm lớp đơn giản trong đó mỗi nút cha mẹ chỉ có hai nút con.

May mắn thay, chúng ta có thể xây dựng kiểu dữ liệu cây của mình chỉ với điều này:

Bây giờ, thay vì xác định từng từ điển trẻ khi chúng ta đi, chúng ta có thể xây dựng toàn bộ các nhánh ngay lập tức:

tree = Tree[]
tree['carnivora']['canis']['c.lupus'] = 'c.l.familiaris'
tree['carnivora']['felis'] = 'f.catus'
print[tree]
[Out]: {
'carnivora': {
'canis': {
'c.lupus': 'c.l.familiaris'
},
'felis': 'f.catus'
}
}
Cây phân loại của người bạn tốt nhất và những thứ khác mà mọi người thích. Ảnh của Jamie Street trên unplash [trái], ảnh của Kari Shea trên unplash [phải].man’s best friend and those other things people like. Photo by Jamie Street on Unsplash [left], Photo by Kari Shea on Unsplash [right].

Phương pháp này có một tên, tự động hóa - việc tạo tự động các mảng và băm mới mỗi khi giá trị không xác định được giải thích.

Một triển khai dòng duy nhất khác [không bao gồm nhập] có thể được tìm thấy ở đây.

Lập chỉ mục danh sách nâng cao

Các bước

Có một số phương pháp cắt danh sách chưa biết, mặc dù hữu ích. Đầu tiên trong số đó là việc sử dụng các bước:steps:

x = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
x[::2]

dictionary.get['three', False]
0

Cú pháp chúng tôi đang sử dụng ở đây là

dictionary.get['three', False]
1 - bởi vì chúng tôi để trống
dictionary.get['three', False]
2 và
dictionary.get['three', False]
3, chúng tôi lặp lại từ đầu đến cuối danh sách, với
dictionary.get['three', False]
4 của
dictionary.get['three', False]
5.

x[3:8:2]

dictionary.get['three', False]
6

Những lát được đặt tên

Phương pháp cắt danh sách nâng cao sau đây được gọi là các lát được đặt tên. Ở đây, chúng tôi gán một lát cho một biến, như vậy:named slices. Here, we assign a slice to a variable, like so:

named_slice = slice[5, None]  # this is equivalent to [5:]

Sau đó, chúng tôi có thể áp dụng lát cắt được đặt tên này vào bất kỳ danh sách nào.

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
0

dictionary.get['three', False]
7

Cú pháp chúng tôi đang sử dụng ở đây sử dụng cùng một mẫu bắt đầu, kết thúc, bước -

dictionary.get['three', False]
8. Chúng ta có thể viết lại
dictionary.get['three', False]
9 như thế này:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
1

dictionary.get['three', "doesn't exist"]
0

Chức năng trang trí

Một chức năng trang trí là một trong những điều kỳ lạ

dictionary.get['three', "doesn't exist"]
1 mà tôi chắc chắn rằng nhiều người trong chúng ta đã thấy - đặc biệt, thư viện Flask sử dụng chúng rất nhiều.

Họ rất đơn giản đáng ngạc nhiên để hiểu và cực kỳ hữu ích. Các nhà trang trí chỉ cần cho phép chúng tôi sửa đổi hành vi của một chức năng mà không cần sửa đổi rõ ràng chức năng của chúng tôi.

Ví dụ: chúng ta có thể xác định hàm

dictionary.get['three', "doesn't exist"]
2 sẽ lặp lại trong một phạm vi, cuối cùng trả về in giá trị cuối cùng nhân với hai:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
2

dictionary.get['three', "doesn't exist"]
3

Chức năng này sẽ không làm gì khác ngoài việc mất nhiều thời gian để chạy - nhưng đó là những gì chúng tôi muốn. Chúng ta sẽ đến lúc thời gian chạy của chức năng này bằng cách sử dụng chức năng trang trí.

Người trang trí được định nghĩa giống như bất kỳ chức năng bình thường nào:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
3

Sau đó, chúng ta có thể sử dụng cú pháp @ Weird @ đó khi xác định chức năng

dictionary.get['three', "doesn't exist"]
2 của chúng ta để kế thừa hành vi
dictionary.get['three', "doesn't exist"]
5.

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
4

Chúng tôi cũng có thể sử dụng nhiều nhà trang trí. Hãy để xác định một người khác được gọi là

dictionary.get['three', "doesn't exist"]
6 sẽ lặp đi lặp lại trên bất kỳ chức năng nào hai lần.

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
5

Nếu bây giờ chúng tôi áp dụng cả hai người trang trí

dictionary.get['three', "doesn't exist"]
7 và
dictionary.get['three', "doesn't exist"]
8 cho các chức năng
dictionary.get['three', "doesn't exist"]
2 của chúng tôi, chúng tôi sẽ nhận được điều này:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
6

Ở đây, chúng tôi đã kết thúc

dictionary.get['three', "doesn't exist"]
2 vào
dictionary.get['three', "doesn't exist"]
8 và chức năng kết quả thành
dictionary.get['three', "doesn't exist"]
7 - giống như một số chức năng Python Frankenstein kỳ lạ của Frankenstein.

Các nhà trang trí chúng tôi đã sử dụng ở đây là những ví dụ đồ chơi đơn giản. Chúng ta có thể làm nhiều hơn nữa với các nhà trang trí - Tôi khuyên bạn nên xem xét các bài viết/tài nguyên này:a lot more with decorators — I would recommend taking a look at these articles/resources:

  • Primer on Python trang trí [một bài viết miễn phí, toàn diện về trang trí]
  • Fluent Python, Luciano Ramalho [rất nhiều Python - không chỉ là người trang trí]

Biểu thị phạm vi với niềng răng

Dễ dàng là tính năng nâng cao yêu thích của tôi trong Python, thay vì dựa vào khoảng trắng để biểu thị phạm vi [nhàm chán] - chúng ta có thể sử dụng niềng răng xoăn!

Chúng tôi nhập chức năng từ thư viện

tree = {
'carnivora': {
'canis': {
'c.lupus': 'c.l.familiaris'
},
'felis': 'f.catus'
}
}
3:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
7

Và chúng ta đi!

Đó là năm tính năng không phổ biến, nhưng các tính năng siêu tiện dụng trong Python. Một vài đề cập danh dự mà tôi đã muốn rời đi để thử:

dictionary = {
'one': 1,
'two': 2
}
dictionary['three']
8

Tôi đã kết hợp một repo github nhỏ với các ví dụ về tất cả các tính năng trên, và hơn thế nữa, ở đây. Kiểm tra nó để biết đoạn mã - và tất nhiên, hãy tự thoải mái để thêm của riêng bạn!

Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, vui lòng liên hệ qua Twitter hoặc trong các ý kiến ​​dưới đây. Hoặc, nếu bạn thích nhiều nội dung như thế này, tôi cũng đăng trên YouTube.

Cảm ơn vì đã đọc!

Khung {} có nghĩa là gì trong Python?

[] Dấu ngoặc được sử dụng cho thứ tự hoạt động, hoặc thứ tự đánh giá và được gọi là bộ dữ liệu. [] Dấu ngoặc được sử dụng cho danh sách. Nội dung danh sách có thể được thay đổi, không giống như nội dung tuple. {} được sử dụng để xác định từ điển trong một "danh sách" được gọi là nghĩa đen.used to define a dictionary in a "list" called a literal.

Giá đỡ {} được gọi là gì?

Dấu ngoặc xoăn {} dấu ngoặc xoăn, còn được gọi là niềng răng hoặc niềng răng xoăn, hiếm khi được sử dụng trong văn bản chính thức và phổ biến hơn trong các lĩnh vực khác như khoa học, toán học và điện toán. Một số hướng dẫn kiểu sẽ cho phép chúng được sử dụng cho một mục đích cụ thể: nhóm lại với nhau một bộ.braces or curly braces, are rarely used in formal writing and are more common in other fields such as science, math, and computing. Some style guides will allow them to be used for one specific purpose: grouping together a set.

{} Được sử dụng để làm gì trong mã?

Dấu ngoặc, hoặc niềng răng, là một cấu trúc cú pháp trong nhiều ngôn ngữ lập trình.Họ có các dạng của "[]", "[]", "{}" hoặc "."Chúng thường được sử dụng để biểu thị các cấu trúc ngôn ngữ lập trình như các khối, cuộc gọi chức năng hoặc đăng ký mảng.Dấu ngoặc còn được gọi là niềng răng.to denote programming language constructs such as blocks, function calls or array subscripts. Brackets are also known as braces.

Python có sử dụng niềng răng xoăn không?

Niềng răng xoăn - {} Một trong những khác biệt lớn nhất giữa Python và các ngôn ngữ lập trình phổ biến khác là trong Python, niềng răng xoăn không được sử dụng để tạo các khối chương trình để điều khiển dòng chảy.Trong Python, thụt lề được sử dụng để điều khiển dòng chảy, giúp Python dễ đọc hơn nhiều so với hầu hết các ngôn ngữ lập trình khác.curly braces are not used to create program blocks for flow control. In Python, indentation is used for flow control, which makes Python much easier to read than most other programming languages.

Bài Viết Liên Quan

Chủ Đề