List comprehension là gì?

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Kirill Smirnov

Data Science Consultant, Altran

List comprehension

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]
nums_new = []
for i in range(1, 6):
    nums_new.append(2*i)

print(nums_new)
[2, 4, 6, 8, 10]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]
                      for num in range(1, 6)
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]
           [          for num in range(1, 6)]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]
           [(2 * num) for num in range(1, 6)]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]
nums_new = [(2 * num) for num in range(1, 6)]
print(nums_new)
[2, 4, 6, 8, 10]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Tóm tắt

List comprehension được xác định bởi:

 

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Tóm tắt

List comprehension được xác định bởi:

  • một đối tượng có thể lặp (vd. list, tuple, set)

 

[          for num in range(1, 6)]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Tóm tắt

List comprehension được xác định bởi:

  • một đối tượng có thể lặp (vd. list, tuple, set)
  • một phép toán trên phần tử

 

[(2 * num) for num in range(1, 6)]

 

  • (tùy chọn) điều kiện
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension với điều kiện

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]

 

1 2 3 4 5 6 7 8 9 10

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

List comprehension với điều kiện

nums = [2, 4, 6, 8, 10]
print(nums)
[2, 4, 6, 8, 10]

 

1 2 3 4 5 6 7 8 9 10 $\rightarrow$ 2 4 6 8 10

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm điều kiện

nums_new = [num for num in range(1, 11)]
print(nums_new)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm điều kiện

nums_new = [num for num in range(1, 11) if num % 2 == 0]
print(nums_new)
[2, 4, 6, 8, 10]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Ví dụ khác

text = 'list COMPREHENSION is A way TO create LISTS'

Nhiệm vụ:
Tạo list chứa độ dài của từng từ viết thường.

list, is, way, create $\rightarrow$ [4, 2, 3, 6]

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Ví dụ khác

text = 'list COMPREHENSION is A way TO create LISTS'

Nhiệm vụ:
Tạo list chứa độ dài của từng từ viết thường.

list, is, way, create $\rightarrow$ [4, 2, 3, 6]

output = [          for word in text.split()                  ]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Ví dụ khác

text = 'list COMPREHENSION is A way TO create LISTS'

Nhiệm vụ:
Tạo list chứa độ dài của từng từ viết thường.

list, is, way, create $\rightarrow$ [4, 2, 3, 6]

output = [          for word in text.split() if word.islower()]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Ví dụ khác

text = 'list COMPREHENSION is A way TO create LISTS'

Nhiệm vụ:
Tạo list chứa độ dài của từng từ viết thường.

list, is, way, create $\rightarrow$ [4, 2, 3, 6]

output = [len(word) for word in text.split() if word.islower()]
print(output)
[4, 2, 3, 6]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Nhiều vòng lặp

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']

Tạo mọi cặp có thể giữa numbersletters:

[
    (1, 'a'), (1, 'b'), (1, 'c'),
    (2, 'a'), (2, 'b'), (2, 'c'),
    (3, 'a'), (3, 'b'), (3, 'c'),
]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Lặp qua nhiều vòng lặp

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [       for i in numbers                 ]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Lặp qua nhiều vòng lặp

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [       for i in numbers for j in letters]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Lặp qua nhiều vòng lặp

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [(i, j) for i in numbers for j in letters]
print(pairs)
[
    (1, 'a'), (1, 'b'), (1, 'c'),
    (2, 'a'), (2, 'b'), (2, 'c'),
    (3, 'a'), (3, 'b'), (3, 'c'),
]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Nhìn sâu hơn

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [(i, j) for i in numbers for j in letters]
pairs = []
for i in numbers:
    for j in letters:
        pairs.append((i, j))
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Nhìn sâu hơn

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [(i, j)                  for j in letters]
pairs = []

    for j in letters:
        pairs.append((i, j))
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Nhìn sâu hơn

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [(i, j) for i in numbers                 ]
pairs = []
for i in numbers:

        pairs.append((i, j))
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm dấu ngoặc vuông

pairs = [ (i, j) for i in numbers  for j in letters]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm dấu ngoặc vuông

pairs = [[(i, j) for i in numbers] for j in letters]
print(pairs)
[
    [(1, 'a'), (2, 'a'), (3, 'a')],
    [(1, 'b'), (2, 'b'), (3, 'b')],
    [(1, 'c'), (2, 'c'), (3, 'c')]
]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm dấu ngoặc vuông

pairs = [[(i, j) for i in numbers] for j in letters]
pairs = []
for j in letters:
    temp = []
    for i in numbers:
        temp.append((i, j))
    pairs.append(temp)
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm dấu ngoặc vuông

pairs = [[(i, j) for i in numbers]                 ]
pairs = []

    temp = []
    for i in numbers:
        temp.append((i, j))
    pairs.append(temp)
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Thêm dấu ngoặc vuông

pairs = [[(i, j)                 ] for j in letters]
pairs = []
for j in letters:
    temp = []

        temp.append((i, j))
    pairs.append(temp)
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Hoán đổi numbers và letters

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [[(i, j) for i in numbers] for j in letters]
print(pairs)
[
    [(1, 'a'), (2, 'a'), (3, 'a')],
    [(1, 'b'), (2, 'b'), (3, 'b')],
    [(1, 'c'), (2, 'c'), (3, 'c')]
]        
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Hoán đổi numbers và letters

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [[(i, j) for i in letters] for j in numbers]
print(pairs)
[
    [('a', 1), ('b', 1), ('c', 1)],
    [('a', 2), ('b', 2), ('c', 2)],
    [('a', 3), ('b', 3), ('c', 3)]
]        
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Khác biệt giữa các list comprehension

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
pairs = [(i, j) for i in numbers for j in letters]
pairs = [[(i, j) for i in numbers] for j in letters]
pairs = [[(i, j) for i in letters] for j in numbers]
Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Ayo berlatih!

Luyện tập câu hỏi phỏng vấn lập trình bằng Python

Preparing Video For Download...