Từ điển Python lấy khóa

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)

Từ điển Python lấy khóa

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

Làm cách nào để lấy khóa từ từ điển Python?

Phương pháp 1. Lấy khóa từ điển dưới dạng danh sách bằng dict . mệnh lệnh. keys() trong Từ điển Python, trả về một đối tượng dạng xem hiển thị danh sách tất cả các khóa trong từ điển theo thứ tự chèn.

Get() trong Python là gì?

Phương thức get() trả về giá trị của mục bằng khóa đã chỉ định .