Computer >> Máy Tính >  >> Lập trình >> Python

Cắt dải ô thay thế trong danh sách (Python)

Slicing là một kỹ thuật rất phổ biến để phân tích dữ liệu từ một danh sách nhất định trong Python. Nhưng để phân tích, đôi khi chúng ta cần tạo các phần của danh sách cho một phạm vi giá trị cụ thể. Ví dụ, chúng ta cần in 4 phần tử bằng cách bỏ qua mỗi 4 phần tử khỏi danh sách. Trong bài viết này, chúng ta sẽ thấy khái niệm về phân chia phạm vi trong Python.

Sử dụng range () và len ()

Chúng ta tạo một vòng lặp for để đi qua toàn bộ độ dài của danh sách nhưng chỉ chọn các phần tử thỏa mãn phép thử chia hết. Trong phép thử chia hết, chúng ta kiểm tra giá trị của phần tử thứ k trong danh sách. Nếu phần còn lại lớn hơn hoặc bằng giá trị phạm vi, chúng tôi chấp nhận phần tử nếu không thì không.

Ví dụ

range_slicing = [6,9,11,15,20,24,29,36,39,43,47,52,56,70,73,79]
print("The given list: ",range_slicing)

# Range Value
s = 4
# Using range and len
result = [range_slicing[k] for k in range(len(range_slicing))
if k % (s * 2) >= s]

print("\nThe list after range slicing: ",result)

Chạy đoạn mã trên cho chúng ta kết quả sau:

The given list: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79]
The list after range slicing: [20, 24, 29, 36, 56, 70, 73, 79]

Sử dụng phép liệt kê

Chúng ta áp dụng logic tương tự như trong cách tiếp cận trước nhưng thay vì sử dụng range () và len (), chúng ta chỉ cần áp dụng enumerate (). Xin lưu ý rằng phần tử cuối cùng trong danh sách xuất hiện trong kết quả vì nó thỏa mãn điều kiện chia hết.

Ví dụ

range_slicing = [6,9,11,15,20,24,29,36,39,43,47,52,56,70,73,79]
print("The given list: ",range_slicing)
# Range value
s2= 5

# Using Enumerate
result_2 = [val for m, val in enumerate(range_slicing)
if m % (s2 * 2) >= s2]

print("\nThe list after range slicing: ",result_2)

Chạy đoạn mã trên cho chúng ta kết quả sau:

The given list: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79]
The list after range slicing: [24, 29, 36, 39, 43, 79]