Chương trình Python để in tất cả các phần tử được lập chỉ mục lẻ của danh sách

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

________số 8_______

đầ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ụ,