range(len(x))
Trong Python, chúng ta thường sử dụng vòng lặp for
để lặp qua một đối tượng có thể lặp lại. Vòng lặp for
trong Python sử dụng phép lặp dựa trên tập hợp, tức là Python chỉ định mục tiếp theo từ một biến lặp lại cho biến vòng lặp trên mỗi lần lặp. Usecase thông thường của vòng lặp for
như sau:
values = ["a", "b", "c"] for value in values: print(value) # a # b # c
index = 0 for value in values: print(index, value) index += 1 # 0 a # 1 b # 2 c
hoặc một cách phổ biến khác để làm điều này là sử dụng range(len(x))
:
for index in range(len(values)): value = values[index] print(index, value) # 0 a # 1 b # 2 c
Tuy nhiên, có một cách dễ dàng và phức tạp hơn để lặp qua các đối tượng có thể lặp lại bằng cách sử dụng enumerate()
. Nó được sử dụng trong vòng lặp for
gần giống như cách bạn sử dụng theo cách thông thường, nhưng thay vì đặt đối tượng có thể lặp ngay sau in
vòng lặp for
, hoặc sử dụng nó dưới range(len(values))
, bạn đặt nó vào bên trong dấu ngoặc đơn của enumerate()
như được hiển thị bên dưới:
for count, value in enumerate(values): print(count, value) # 0 a # 1 b # 2 c
Chúng ta cũng có thể xác định một đối số start
cho enumerate()
như hình dưới đây:
for count, value in enumerate(values, start=1): print(count, value) # 1 a # 2 b # 3 c
Hàm enumerate()
trả về hai biến:
Cũng giống như các biến vòng lặp trong vòng lặp for
, các biến vòng lặp có thể được đặt tên là bất kỳ thứ gì, chẳng hạn, chúng ta có thể gọi sau đó là index
và value
và chúng sẽ vẫn hoạt động. enumerate()
hiệu quả hơn vòng lặp for
vì nó giúp bạn không gặp rắc rối khi nhớ truy cập giá trị bên trong vòng lặp và sử dụng nó một cách chính xác và sau đó cũng nhớ nâng cao giá trị của biến vòng lặp, tất cả đều được Python xử lý tự động .
newList = [ expression(element) for element in oldList if condition ]
# Using list comprehension to iterate through loop List = [character for character in 'HackerNoon'] # Displaying list print(List) # Output # ['H', 'a', 'c', 'k', 'e', 'r', 'N', 'o', 'o', 'n']
sorted()
Hàm sorted()
trong Python sắp xếp các phần tử của một đối tượng có thể lặp lại theo một thứ tự cụ thể (tăng dần hoặc giảm dần) và trả về chúng dưới dạng danh sách đã sắp xếp. Nó có thể được sử dụng để sắp xếp một chuỗi (chuỗi, bộ, danh sách) hoặc bộ sưu tập (bộ, từ điển, bộ cố định) hoặc bất kỳ trình lặp nào khác.
Cú pháp của hàm sorted()
như sau:
sorted(iterable, key=None, reverse=False)
Hàm sorted()
nhận tối đa ba tham số:
list_inp = [100, 75, 100, 20, 75, 12, 75, 25] set_res = set(list_inp) print("The unique elements of the input list using set():\n") list_res = (list(set_res)) for item in list_res: print(item)
The unique elements of the input list using set(): 25 75 100 20 12
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("The given list is:", myList) mygen = (element ** 2 for element in myList if element % 2 == 0) print("Elements obtained from the generator are:") for ele in mygen: print(ele)
The given list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Elements obtained from the generator are: 4 16 36 64 100
.get()
và .setdefault()
Phương thức .setdefault()
cho phép đặt dict[key]=default
nếu key chưa có trong dict.
Cú pháp của .setdefault()
như sau:
dict.setdefault(key, default=None)
Đây là đoạn mã ví dụ để hiểu cách sử dụng .setdefault()
:
a_dictionary = {"a": 1, "b": 2, "d": 4} a_dictionary.setdefault("c", 3) print(a_dictionary)
{'a': 1, 'b': 2, 'd': 4, 'c': 3}
Điều tương tự cũng có thể đạt được bằng cách sử dụng phương thức .get()
bằng cách chuyển một giá trị mặc định cho khóa, như bạn có thể thấy bên dưới:
a_dictionary = {"a": 1, "b": 2, "d": 4} print(a_dictionary.get("c", 3)) print(a_dictionary)
3 {'a': 1, 'b': 2, 'd': 4}
collections.Counter
.
Nhập bộ sưu tập làm cho nội dung trong bộ sưu tập có sẵn dưới dạng:
import collections
from collections import Counter
import collections c = collections.Counter('abcdaab') for letter in 'abcde': print '%s : %d' % (letter, c[letter])
a : 3 b : 2 c : 1 d : 1 e : 0
Như tên “f-string” đã nói, chúng là các ký tự chuỗi có chữ f ở đầu và dấu ngoặc nhọn chứa các biểu thức sẽ được thay thế bằng các giá trị của chúng trong thời gian chạy và sau đó được định dạng bằng giao thức __format__
.
name = "Eric" age = 74 print(f"Hello, {name}. You are {age}.") # 'Hello, Eric. You are 74.'
.join()
Trong Python, chúng ta có thể sử dụng phương thức .join()
để nối danh sách các chuỗi thành một chuỗi duy nhất. Cú pháp thông thường cho phương thức này trông giống như dưới đây:
'String to insert'.join([List of strings])
Nó có thể được sử dụng theo nhiều cách - nếu bạn sử dụng chuỗi trống ““
, [Danh sách các chuỗi] được nối đơn giản và nếu bạn sử dụng dấu phẩy, một chuỗi được phân tách bằng dấu phẩy sẽ được tạo. Khi ký tự dòng mới \n
được sử dụng, một dòng mới sẽ được thêm vào sau mỗi chuỗi. Xem ví dụ bên dưới:
l = ['aaa', 'bbb', 'ccc'] s = ''.join(l) print(s) # aaabbbccc s = ','.join(l) print(s) # aaa,bbb,ccc s = '-'.join(l) print(s) # aaa-bbb-ccc s = '\n'.join(l) print(s) # aaa # bbb # ccc
{**d1, **d2}
(Python 3.5+) Cách dễ nhất để hợp nhất các từ điển là sử dụng toán tử giải nén ( **
). Cú pháp của phương thức này trông giống như sau:
{**dict1, **dict2, **dict3}
d1 = {'k1': 1, 'k2': 2} d2 = {'k3': 3, 'k4': 4} print({**d1, **d2}) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
if x in list
colors = ["red", "green", "blue"] c = "red" # cumbersome and error-prone if c == "red" or c == "green" or c == "blue": print("is main color")
colors = ["red", "green", "blue"] c = "red" # better: if c in colors: print("is main color")