Ra lệnh trong python

Mỗi khóa được phân tách khỏi giá trị của nó bằng dấu hai chấm [. ], các mục được phân tách bằng dấu phẩy và toàn bộ nội dung được đặt trong dấu ngoặc nhọn. Một từ điển trống không có bất kỳ mục nào được viết chỉ bằng hai dấu ngoặc nhọn, như thế này. {}

Các khóa là duy nhất trong một từ điển trong khi các giá trị có thể không. Các giá trị của từ điển có thể thuộc bất kỳ loại nào, nhưng các khóa phải thuộc loại dữ liệu bất biến, chẳng hạn như chuỗi, số hoặc bộ dữ liệu

Truy cập các giá trị trong từ điển

Để truy cập các phần tử từ điển, bạn có thể sử dụng dấu ngoặc vuông quen thuộc cùng với khóa để lấy giá trị của nó. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Zara
dict['Age']:  7

Nếu chúng tôi cố gắng truy cập một mục dữ liệu bằng một khóa không phải là một phần của từ điển, chúng tôi sẽ gặp lỗi như sau -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Alice']:
Traceback [most recent call last]:
   File "test.py", line 4, in 
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

cập nhật từ điển

Bạn có thể cập nhật từ điển bằng cách thêm một mục mới hoặc một cặp khóa-giá trị, sửa đổi một mục hiện có hoặc xóa một mục hiện có như minh họa bên dưới trong ví dụ đơn giản –

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Age']:  8
dict['School']:  DPS School

Xóa các thành phần từ điển

Bạn có thể xóa các thành phần từ điển riêng lẻ hoặc xóa toàn bộ nội dung của từ điển. Bạn cũng có thể xóa toàn bộ từ điển trong một thao tác

Để xóa toàn bộ từ điển một cách rõ ràng, chỉ cần sử dụng câu lệnh del. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear[];     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Điều này tạo ra kết quả sau. Lưu ý rằng một ngoại lệ được đưa ra bởi vì sau khi từ điển del dict không còn tồn tại nữa -

dict['Age']:
Traceback [most recent call last]:
   File "test.py", line 8, in 
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Lưu ý - phương thức del[] được thảo luận trong phần tiếp theo

Thuộc tính của khóa từ điển

Giá trị từ điển không có hạn chế. Chúng có thể là bất kỳ đối tượng Python tùy ý nào, đối tượng tiêu chuẩn hoặc đối tượng do người dùng định nghĩa. Tuy nhiên, điều tương tự cũng không đúng với các phím

Có hai điểm quan trọng cần nhớ về khóa từ điển -

[a] Không được phép nhập nhiều hơn một mục trên mỗi khóa. Điều đó có nghĩa là không cho phép khóa trùng lặp. Khi gặp phải các khóa trùng lặp trong quá trình gán, nhiệm vụ cuối cùng sẽ thắng. Ví dụ -

________số 8_______

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Manni

[b] Khóa phải là bất biến. Điều đó có nghĩa là bạn có thể sử dụng chuỗi, số hoặc bộ dữ liệu làm khóa từ điển nhưng không được phép sử dụng những thứ như ['key']. Sau đây là một ví dụ đơn giản -

dict['Name']:  Zara
dict['Age']:  7
0

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Zara
dict['Age']:  7
1

Các chức năng & phương pháp từ điển tích hợp

Python bao gồm các chức năng từ điển sau -

Sr. Không. Chức năng với Description1cmp[dict1, dict2]

So sánh các yếu tố của cả dict

2len[chính tả]

Cung cấp tổng chiều dài của từ điển. Điều này sẽ bằng với số lượng mục trong từ điển

3str[chính tả]

Tạo một biểu diễn chuỗi có thể in được của một từ điển

4 loại [biến]

Trả về kiểu của biến đã truyền. Nếu biến được truyền là từ điển thì nó sẽ trả về kiểu từ điển

Cấu trúc bảng băm khóa/giá trị hiệu quả của Python được gọi là "dict". Nội dung của một dict có thể được viết dưới dạng một chuỗi key. cặp giá trị trong dấu ngoặc nhọn { }, e. g. chính tả = {key1. giá trị1, khóa2. giá trị2,. }. "Chính tả trống" chỉ là một cặp dấu ngoặc nhọn trống {}

Tra cứu hoặc thiết lập giá trị trong lệnh sử dụng dấu ngoặc vuông, e. g. dict['foo'] tra cứu giá trị trong khóa 'foo'. Các chuỗi, số và bộ dữ liệu hoạt động như các khóa và bất kỳ loại nào cũng có thể là một giá trị. Các loại khác có thể hoặc không thể hoạt động chính xác như các khóa [chuỗi và bộ dữ liệu hoạt động rõ ràng vì chúng không thay đổi]. Tra cứu một giá trị không có trong chính tả sẽ đưa ra Lỗi Key -- sử dụng "in" để kiểm tra xem khóa có trong chính tả hay sử dụng dict. get[key] trả về giá trị hoặc Không có nếu không có khóa [hoặc get[key, not-found] cho phép bạn chỉ định giá trị nào sẽ trả về trong trường hợp không tìm thấy]

  ## Can build up a dict by starting with the the empty dict {}
  ## and storing key/value pairs into the dict like this:
  ## dict[key] = value-for-that-key
  dict = {}
  dict['a'] = 'alpha'
  dict['g'] = 'gamma'
  dict['o'] = 'omega'

  print[dict] ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}

  print[dict['a']]     ## Simple lookup, returns 'alpha'
  dict['a'] = 6       ## Put new key/value into dict
  'a' in dict         ## True
  ## print[dict['z']]                  ## Throws KeyError
  if 'z' in dict: print[dict['z']]     ## Avoid KeyError
  print[dict.get['z']]  ## None [instead of KeyError]

Theo mặc định, vòng lặp for trên từ điển sẽ lặp lại các khóa của nó. Các phím sẽ xuất hiện theo thứ tự tùy ý. Các phương pháp dict. keys[] và dict. các giá trị [] trả về danh sách các khóa hoặc giá trị một cách rõ ràng. Ngoài ra còn có một items[] trả về danh sách các bộ dữ liệu [khóa, giá trị], đây là cách hiệu quả nhất để kiểm tra tất cả dữ liệu giá trị khóa trong từ điển. Tất cả các danh sách này có thể được chuyển đến hàm sorted[]

  ## By default, iterating over a dict iterates over its keys.
  ## Note that the keys are in a random order.
  for key in dict: print[key]
  ## prints a g o
  
  ## Exactly the same as above
  for key in dict.keys[]: print[key]

  ## Get the .keys[] list:
  print[dict.keys[]]  ## dict_keys[['a', 'o', 'g']]

  ## Likewise, there's a .values[] list of values
  print[dict.values[]]  ## dict_values[['alpha', 'omega', 'gamma']]

  ## Common case -- loop over the keys in sorted order,
  ## accessing each key/value
  for key in sorted[dict.keys[]]:
    print[key, dict[key]]
  
  ## .items[] is the dict expressed as [key, value] tuples
  print[dict.items[]]  ##  dict_items[[['a', 'alpha'], ['o', 'omega'], ['g', 'gamma']]]

  ## This loop syntax accesses the whole dict by looping
  ## over the .items[] tuple list, accessing one [key, value]
  ## pair on each iteration.
  for k, v in dict.items[]: print[k, '>', v]
  ## a > alpha    o > omega     g > gamma

lưu ý chiến lược. từ quan điểm hiệu suất, từ điển là một trong những công cụ tuyệt vời nhất của bạn và bạn nên sử dụng nó khi có thể như một cách dễ dàng để sắp xếp dữ liệu. Ví dụ: bạn có thể đọc tệp nhật ký trong đó mỗi dòng bắt đầu bằng địa chỉ IP và lưu trữ dữ liệu vào một lệnh sử dụng địa chỉ IP làm khóa và danh sách các dòng xuất hiện dưới dạng giá trị. Khi bạn đã đọc toàn bộ tệp, bạn có thể tra cứu bất kỳ địa chỉ IP nào và ngay lập tức thấy danh sách các dòng của nó. Từ điển lấy dữ liệu rải rác và biến nó thành một thứ gì đó mạch lạc

Định dạng chính tả

Toán tử % hoạt động thuận tiện để thay thế các giá trị từ một lệnh thành một chuỗi theo tên

  h = {}
  h['word'] = 'garfield'
  h['count'] = 42
  s = 'I want %[count]d copies of %[word]s' % h  # %d for int, %s for string
  # 'I want 42 copies of garfield'

  # You can also use str.format[].
  s = 'I want {count:d} copies of {word}'.format[h]

Del

Toán tử "del" thực hiện thao tác xóa. Trong trường hợp đơn giản nhất, nó có thể loại bỏ định nghĩa của một biến, như thể biến đó chưa được định nghĩa. Del cũng có thể được sử dụng trên các thành phần hoặc lát danh sách để xóa phần đó của danh sách và xóa các mục từ từ điển

  var = 6
  del var  # var no more!
  
  list = ['a', 'b', 'c', 'd']
  del list[0]     ## Delete first element
  del list[-2:]   ## Delete last two elements
  print[list]      ## ['b']

  dict = {'a':1, 'b':2, 'c':3}
  del dict['b']   ## Delete 'b' entry
  print[dict]      ## {'a':1, 'c':3}

Các tập tin

Hàm open[] mở và trả về một phần xử lý tệp có thể được sử dụng để đọc hoặc ghi tệp theo cách thông thường. Mã f = open['name', 'r'] mở tệp vào biến f, sẵn sàng cho thao tác đọc và sử dụng f. close[] khi kết thúc. Thay vì 'r', hãy sử dụng 'w' để viết và 'a' để nối thêm. Vòng lặp for tiêu chuẩn hoạt động đối với tệp văn bản, lặp qua các dòng của tệp [điều này chỉ hoạt động đối với tệp văn bản, không phải tệp nhị phân]. Kỹ thuật vòng lặp for là một cách đơn giản và hiệu quả để xem tất cả các dòng trong tệp văn bản

  # Echo the contents of a text file
  f = open['foo.txt', 'rt', encoding='utf-8']
  for line in f:   ## iterates over the lines of the file
    print[line, end='']    ## end='' so print does not add an end-of-line char
                           ## since 'line' already includes the end-of-line.
  f.close[]

Đọc từng dòng một có chất lượng tốt mà không phải tất cả tệp đều cần vừa với bộ nhớ cùng một lúc -- tiện dụng nếu bạn muốn xem từng dòng trong tệp 10 gigabyte mà không cần sử dụng 10 gigabyte bộ nhớ. các f. readlines[] đọc toàn bộ tệp vào bộ nhớ và trả về nội dung của nó dưới dạng danh sách các dòng của nó. các f. read[] đọc toàn bộ tệp thành một chuỗi, đây có thể là một cách thuận tiện để xử lý toàn bộ văn bản cùng một lúc, chẳng hạn như với các biểu thức chính quy mà chúng ta sẽ thấy sau

Để viết, f. phương thức write[string] là cách dễ nhất để ghi dữ liệu vào tệp đầu ra đang mở. Hoặc bạn có thể sử dụng "print" với một tệp đang mở như "print[string, file=f]"

Tập tin Unicode

Để đọc và ghi các tệp được mã hóa unicode, hãy sử dụng chế độ `'t'` và chỉ định rõ ràng mã hóa

with open['foo.txt', 'rt', encoding='utf-8'] as f:
  for line in f:
    # here line is a *unicode* string
  
with open['write_test', encoding='utf-8', mode='wt'] as f:
    f.write['\u20ACunicode\u20AC\n'] #  €unicode€
    # AKA print['\u20ACunicode\u20AC', file=f]  ## which auto-adds end='\n'

Tập thể dục phát triển gia tăng

Xây dựng chương trình Python, đừng viết toàn bộ trong một bước. Thay vào đó chỉ xác định một cột mốc đầu tiên, e. g. "bước đầu tiên là trích xuất danh sách các từ. " Viết mã để đạt được cột mốc đó và chỉ cần in cấu trúc dữ liệu của bạn tại thời điểm đó, sau đó bạn có thể thực hiện kiểm tra hệ thống. exit[0] để chương trình không chạy tiếp vào phần chưa hoàn thành. Khi mã cột mốc đang hoạt động, bạn có thể làm việc với mã cho cột mốc tiếp theo. Việc có thể xem bản in các biến của bạn ở một trạng thái có thể giúp bạn suy nghĩ về cách bạn cần chuyển đổi các biến đó để chuyển sang trạng thái tiếp theo. Python rất nhanh với mẫu này, cho phép bạn thực hiện một thay đổi nhỏ và chạy chương trình để xem nó hoạt động như thế nào. Tận dụng sự quay vòng nhanh chóng đó để xây dựng chương trình của bạn theo từng bước nhỏ

Bài tập. số từ. py

Kết hợp tất cả các tài liệu Python cơ bản -- chuỗi, danh sách, ký tự, bộ dữ liệu, tệp -- hãy thử đếm từ tóm tắt. bài tập py trong phần Bài tập cơ bản

Một dict[] trong Python là gì?

Cấu trúc bảng băm khóa/giá trị hiệu quả của Python được gọi là "dict". Nội dung của một dict có thể được viết dưới dạng một chuỗi key. cặp giá trị trong dấu ngoặc nhọn { }, e. g. chính tả = {key1. giá trị1, khóa2. giá trị2,. }. "Chính tả trống" chỉ là một cặp dấu ngoặc nhọn trống {}.

dict[] có phải là một phương thức không?

Phương thức dict[] tạo một đối tượng từ điển từ các khóa và giá trị đã chỉ định hoặc các lần lặp của khóa và giá trị hoặc đối tượng ánh xạ.

Tôi nên sử dụng dict[] hay {}?

tl;dr. Với CPython 2. 7, việc sử dụng dict[] để tạo từ điển mất tới 6 lần lâu hơn và liên quan đến nhiều hoạt động cấp phát bộ nhớ hơn so với cú pháp theo nghĩa đen. Sử dụng {} để tạo từ điển, đặc biệt nếu bạn điền sẵn từ điển, trừ khi cú pháp theo nghĩa đen không phù hợp với trường hợp của bạn .

Tại sao lại sử dụng dict[] thay vì {}?

dict "dễ đọc " hơn {} và ý nghĩa rõ ràng hơn. đặc biệt là với những người sử dụng nhiều ngôn ngữ và khó nhớ đó là dấu ngoặc nhọn, dấu ngoặc nhọn, dấu ngoặc nhọn.

Chủ Đề