Bạn đã bao giờ cần in ra các phần tử của danh sách có chỉ số lẻ trong Python chưa?
Một cách để làm điều này là sử dụng vòng lặp for
lặp qua danh sách với bước 2. Điều này sẽ cho phép chúng tôi chỉ truy cập các chỉ số lẻ của danh sách
L = [2,5,9,7,6,3,8,9]
for i in range[1,len[L],2]:
print[L[i]]
Ngoài ra, chúng ta có thể sử dụng vòng lặp for
lặp qua tất cả các chỉ mục của danh sách, sau đó kiểm tra từng chỉ mục để xem nó có lẻ không. Nếu có, chúng ta có thể in ra phần tử tại chỉ mục đó
L = [2,5,9,7,6,3,8,9]
for i in range[1,len[L]]:
if i%2 !=0:
print[L[i]]
Và đó là nó. Chỉ với vài dòng code, chúng ta đã có thể in ra các phần tử của một danh sách có chỉ số lẻ. Cho dù bạn là người mới bắt đầu hay một lập trình viên có kinh nghiệm, kỹ thuật này chắc chắn sẽ hữu ích vào một lúc nào đó trong hành trình viết mã của bạn
Điều này sẽ cung cấp cho bạn các phần tử lẻ trong danh sách. Bây giờ để trích xuất các phần tử ở các chỉ số lẻ, bạn chỉ cần thay đổi một chút ở trên
>>> x = [10, 20, 30, 40, 50, 60, 70]
>>> y = [j for i, j in enumerate[x] if i&1]
[20, 40, 60]
Giải trình
Toán tử AND theo bit được sử dụng với 1 và lý do nó hoạt động là vì, số lẻ khi viết dưới dạng nhị phân phải có chữ số đầu tiên là 1. Hãy kiểm tra
23 = 1 * [2**4] + 0 * [2**3] + 1 * [2**2] + 1 * [2**1] + 1 * [2**0] = 10111
14 = 1 * [2**3] + 1 * [2**2] + 1 * [2**1] + 0 * [2**0] = 1110
Thao tác AND với 1 sẽ chỉ trả về 1 [1 trong hệ nhị phân cũng sẽ có chữ số cuối cùng là 1], nếu giá trị là số lẻ
Kiểm tra trang Toán tử Bitwise Python để biết thêm
P. S. Bạn có thể sử dụng phương pháp này một cách khéo léo nếu bạn muốn chọn các cột chẵn và lẻ trong một khung dữ liệu. Giả sử tọa độ x và y của các điểm chính trên khuôn mặt được đưa ra dưới dạng các cột x1, y1, x2, v.v. Để chuẩn hóa tọa độ x và y với các giá trị chiều rộng và chiều cao của từng hình ảnh, bạn chỉ cần thực hiện
for i in range[df.shape[1]]:
if i&1:
df.iloc[:, i] /= heights
else:
df.iloc[:, i] /= widths
Điều này không liên quan chính xác đến câu hỏi nhưng đối với các nhà khoa học dữ liệu và kỹ sư thị giác máy tính, phương pháp này có thể hữu ích
Trong bài viết này, chúng ta sẽ thảo luận về các cách khác nhau để tìm nạp tất cả các mục ở các vị trí chỉ mục lẻ của Danh sách trong Python
Mục lục
Phương pháp 1. Sử dụng List Slicing
Chúng ta có thể cắt danh sách bằng cách sử dụng toán tử chỉ số để chỉ chọn các phần tử ở các vị trí chỉ số lẻ. Để cắt một danh sách, chúng ta cần ba giá trị,
list[start : end: N]
Ở đây, bắt đầu và kết thúc là vị trí chỉ số. Trong khi đó, N là kích thước bước. Nó trả về, mọi phần tử thứ N từ đầu đến cuối-1. Vì vậy, để chọn phần tử ở mọi vị trí chỉ mục lẻ, hãy bắt đầu từ chỉ mục 1, cho đến hết chuỗi và giữ kích thước bước là 2. Hãy xem một ví dụ,
# List of Numbers listOfNumbers = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] # Get list elements at odd index positions elements = listOfNumbers[ 1 : : 2] print[elements]
đầu ra
quảng cáo
[11, 13, 15, 17, 19]
Ở đây, chúng tôi đã chọn các mục ở các vị trí chỉ mục lẻ từ danh sách
Phương pháp 2. Sử dụng liệt kê[]
Hàm enumerate[] chấp nhận một chuỗi làm đối số và trả về một đối tượng liệt kê có thể lặp lại. Trong đó, khi lặp lại, mang lại các cặp chứa vị trí chỉ mục và giá trị. Vì vậy, chúng ta có thể chuyển danh sách của mình dưới dạng đối số cho hàm enumerate[] và lặp lại các cặp do nó tạo ra. Mỗi cặp sẽ có một vị trí chỉ mục và giá trị tại vị trí chỉ mục đó trong danh sách. Chỉ chọn những giá trị mà chỉ mục là số lẻ. Hãy xem một ví dụ,
Đọc thêm
- Kiểm tra xem Chuỗi có chứa các ký tự cụ thể trong Python không
- Trích xuất các số chẵn từ danh sách trong Python
- con trăn. Thay thế ký tự trong chuỗi theo vị trí chỉ mục
- So sánh và nhận sự khác biệt giữa hai danh sách trong Python
đầu ra
[11, 13, 15, 17, 19]
Ở đây, chúng tôi đã chọn các mục ở các vị trí chỉ mục lẻ từ danh sách
Phương pháp 3. sử dụng Danh sách hiểu
Giải pháp này tương tự như giải pháp trước, nhưng chỉ khác một điểm. Mặc dù vậy, chúng ta sẽ sử dụng hàm enumerate[] và khả năng hiểu Danh sách để chọn các phần tử ở vị trí chỉ số lẻ trong Danh sách. Nhưng để xác minh, nếu một vị trí chỉ số là lẻ hay không, chúng tôi sẽ sử dụng Toán tử AND. Khi chúng ta áp dụng toán tử AND cho vị trí chỉ mục và số 1, nếu nó trả về 1, thì có nghĩa là vị trí chỉ mục là ODD. Hãy xem một ví dụ,