Kết quả thêm magic numbers từ 1 đến 100 như sau:
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
Để giải quyết bài toán này, chúng ta sẽ làm theo các cách tiếp cận dưới đây:
Giải pháp 1
- Tạo list comprehension thêm giá trị 1 đến 100 vào list ls
ls = [i for i in range(1, 101)]
- Áp dụng lambda filter để giữ giá trị chia 9 dư 1
l = list(filter(lambda i: i % 9 == 1, ls))
- Tạo Series từ list l
pd.Series(l)
Ví dụ
Hãy xem mã dưới đây để hiểu rõ hơn:
import pandas as pd
ls = [i for i in range(1, 101)]
l = list(filter(lambda i: i % 9 == 1, ls))
print("magic number series:\n", pd.Series(l))
Đầu ra
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
Giải pháp 2
- Tạo danh sách rỗng
- Thiết lập vòng for từ 1 đến 101, đặt digit_sum = 0
for i in range(1, 101):
digit_sum = 0
- Gán i vào biến tạm temp để i không bị thay đổi
- Thiết lập while loop điều kiện temp > 0
- Tính remainder và digit_sum như sau:
while temp > 0:
rem = temp % 10
digit_sum = digit_sum + rem
temp = temp // 10
- Cuối cùng thiết lập điều kiện if kiểm tra digit_sum bằng 1 hoặc 10. Nếu đúng thì thêm vào list
if digit_sum == 1 or digit_sum == 10:
l.append(i)
- Cuối cùng, tạo Series từ list
Ví dụ
Hãy kiểm tra mã sau để hiểu rõ hơn:
import pandas as pd
l = []
for i in range(1, 101):
digit_sum = 0
temp = i
while temp > 0:
rem = temp % 10
digit_sum = digit_sum + rem
temp = temp // 10
if digit_sum == 1 or digit_sum == 10:
l.append(i)
print("magic number series:\n", pd.Series(l))
Đầu ra
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100