Python - Hiểu danh sách
Danh sách hiểu
Tính năng hiểu danh sách cung cấp cú pháp ngắn hơn khi bạn muốn tạo danh sách mới dựa trên các giá trị của danh sách hiện có.
Ví dụ:
Dựa trên danh sách các loại trái cây, bạn muốn có một danh sách mới, chỉ chứa các loại trái cây có chữ "a" trong tên.
Nếu không hiểu danh sách, bạn sẽ phải viết một câu lệnh for
với một bài kiểm tra có điều kiện bên trong:
Ví dụ
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
Hãy tự mình thử »Với tính năng hiểu danh sách, bạn có thể thực hiện tất cả những điều đó chỉ với một dòng mã:
Ví dụ
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
Hãy tự mình thử » Cú pháp
newlist = [ expression for item in iterable if condition == True]
Giá trị trả về là một danh sách mới, giữ nguyên danh sách cũ.
Tình trạng
Điều kiện giống như một bộ lọc chỉ chấp nhận các mục có giá trị là True
.
Ví dụ
Chỉ chấp nhận các mặt hàng không phải là "apple":
newlist = [x for x in fruits if x != "apple"]
Hãy tự mình thử » Điều kiện if x != "apple" sẽ trả về True
cho tất cả các phần tử ngoài "apple", làm cho danh sách mới chứa tất cả các loại trái cây ngoại trừ "apple".
Điều kiện là tùy chọn và có thể được bỏ qua:
Có thể lặp lại
Iterable có thể là bất kỳ đối tượng iterable nào, như danh sách, bộ dữ liệu, bộ, v.v.
Ví dụ
Bạn có thể sử dụng hàm range()
để tạo một iterable:
newlist = [x for x in range(10)]
Hãy tự mình thử »Ví dụ tương tự nhưng có điều kiện:
Sự biểu lộ
Biểu thức là mục hiện tại trong lần lặp, nhưng nó cũng là kết quả mà bạn có thể thao tác trước khi nó kết thúc giống như một mục danh sách trong danh sách mới:
Ví dụ
Đặt các giá trị trong danh sách mới thành chữ hoa:
newlist = [x.upper()
for x in fruits]
Hãy tự mình thử »Bạn có thể đặt kết quả thành bất cứ điều gì bạn thích:
Ví dụ
Đặt tất cả các giá trị trong danh sách mới thành 'xin chào':
newlist = ['hello' for x in fruits]
Hãy tự mình thử »Biểu thức cũng có thể chứa các điều kiện, không giống như bộ lọc mà là một cách để thao túng kết quả:
Ví dụ
Trả về "cam" thay vì "chuối":
newlist = [x if x != "banana" else "orange"
for x in fruits]
Hãy tự mình thử »Biểu thức trong ví dụ trên cho biết:
“Không phải chuối trả lại hàng, chuối trả lại cam”.