Hướng dẫn how do you select an odd item in a list in python? - làm cách nào để bạn chọn một mục lẻ trong danh sách trong python?

Bạn có thể sử dụng bitwise và toán tử &:

>>> x = [1, 2, 3, 4, 5, 6, 7]
>>> y = [i for i in x if i&1]
[1, 3, 5, 7]

Điều này sẽ cung cấp cho bạn các yếu tố kỳ lạ trong danh sách. Bây giờ để trích xuất các phần tử tại các chỉ số lẻ mà bạn chỉ cần thay đổi một chút trên:to extract the elements at odd indices you just need to change the above a bit:

>>> 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

BitWise và toán tử được sử dụng với 1 và lý do nó hoạt động là bởi vì, số lẻ khi được viết bằ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

Và hoạt động với 1 sẽ chỉ trả về 1 [1 trong nhị phân cũng sẽ có chữ số cuối cùng 1], iff giá trị là lẻ.

Kiểm tra trang toán tử Python bitwise để 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 lẻ và thậm chí cả trong một khung dữ liệu. Giả sử tọa độ x và y của các điểm khóa khuôn mặt được đưa ra dưới dạng cột X1, Y1, X2, v.v.

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ư tầm nhìn máy tính, phương pháp này có thể hữu ích.

Bước 1: Khai báo và khởi tạo một mảng. Bước 2: Tính độ dài của mảng được khai báo. Bước 3: Vòng lặp qua mảng bằng cách khởi tạo giá trị của biến "I" lên 0 sau đó tăng giá trị của nó lên 2, tức là, i = i+2. Bước 4: In các yếu tố có mặt ở các vị trí lẻ.

Làm thế nào tôi có thể có được các chỉ số lẻ của một danh sách?

Viết chương trình Python để chọn các mục lẻ của danh sách.

Trình bày bằng hình ảnh về số lẻ:

Giải pháp mẫu:-:-

Mã Python:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print[x[::2]]

Đầu ra mẫu:

[1, 3, 5, 7, 9] 

Flowchart:

Số lẻ từ 1 đến 100:


Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn [và nhận xét] thông qua Disqus.

Trước đây: Viết chương trình Python để chuyển đổi một cặp giá trị thành một mảng duy nhất được sắp xếp. Write a Python program to convert a pair of values into a sorted unique array.
Next: Write a Python program to insert an element before each element of a list.

Python: Lời khuyên trong ngày

Tạo một trình lặp lại lọc các phần tử từ Itable chỉ trả lại chỉ cho các vị từ là sai:

>>> import itertools
# keeping only false values
>>> list[itertools.filterfalse[bool, [None, False, 1, 0, 10]]]
[None, False, 0]

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận
    Using Naive method, this task can be performed by using the loops. One can use two containers one each to store alternate elements and later joining them.

    Python3

    Các

    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
    
    9
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    0
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    2
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    3
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    4

    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    5
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    7

    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    8
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    7

    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    1
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    2
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    3
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    4
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    0
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    6
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    4
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    8
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    9

    [1, 3, 5, 7, 9] 
    
    0
    [1, 3, 5, 7, 9] 
    
    1
    x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print[x[::2]]
    
    
    2
    [1, 3, 5, 7, 9] 
    
    3
    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
    
    3
    [1, 3, 5, 7, 9] 
    
    5

    [1, 3, 5, 7, 9] 
    
    6
    [1, 3, 5, 7, 9] 
    
    7

    [1, 3, 5, 7, 9] 
    
    0
    [1, 3, 5, 7, 9] 
    
    9
    [1, 3, 5, 7, 9] 
    
    5

    [1, 3, 5, 7, 9] 
    
    6
    >>> import itertools
    # keeping only false values
    >>> list[itertools.filterfalse[bool, [None, False, 1, 0, 10]]]
    [None, False, 0]
    
    2

    >>> import itertools
    # keeping only false values
    >>> list[itertools.filterfalse[bool, [None, False, 1, 0, 10]]]
    [None, False, 0]
    
    3
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    5
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    2
    >>> import itertools
    # keeping only false values
    >>> list[itertools.filterfalse[bool, [None, False, 1, 0, 10]]]
    [None, False, 0]
    
    7

    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
    
    9
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    03070
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    2
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    3
    The original list : [3, 6, 7, 8, 9, 2, 1, 5]
    Separated odd and even index list: [3, 7, 9, 1, 6, 8, 2, 5]
    3

    Đầu ra

    The original list : [3, 6, 7, 8, 9, 2, 1, 5]
    Separated odd and even index list: [3, 7, 9, 1, 6, 8, 2, 5]

    & nbsp; Phương pháp #2: Sử dụng Danh sách cắt & NBSP; Nhiệm vụ cụ thể này có thể dễ dàng thực hiện bằng phương pháp cắt danh sách theo cách nhỏ gọn và hiệu quả hơn, đây là phương pháp được khuyến nghị để giải quyết vấn đề này.
    Method #2 : Using list slicing 
    This particular task can be easily performed using the list slicing method in a more compact and efficient manner, this is a recommended method to solve this problem.

    Python3

    Các

    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
    
    9
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    0
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    2
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    3
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    4

    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    5
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    7

    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    8
    >>> x = [10, 20, 30, 40, 50, 60, 70]
    >>> y = [j for i, j in enumerate[x] if i&1]
    [20, 40, 60]
    
    1
    for i in range[df.shape[1]]:
        if i&1:
            df.iloc[:, i] /= heights
        else:
            df.iloc[:, i] /= widths
    
    7

    Đầu ra

    The original list : [3, 6, 7, 8, 9, 2, 1, 5]
    Separated odd and even index list : [3, 7, 9, 1, 6, 8, 2, 5]


    Làm thế nào để bạn chọn một số lẻ trong danh sách trong Python?

    Để lọc các số lẻ từ danh sách trong Python, hãy sử dụng hàm tích hợp Filter []. Vượt qua hàm trả về đúng cho một số lẻ và danh sách các số, làm đối số cho hàm lọc [].use filter[] builtin function. Pass the function that returns True for an odd number, and the list of numbers, as arguments to filter[] function.

    Làm thế nào để bạn in một phần tử vị trí kỳ lạ trong danh sách Python?

    Bước 1: Khai báo và khởi tạo một mảng. Bước 2: Tính độ dài của mảng được khai báo. Bước 3: Vòng lặp qua mảng bằng cách khởi tạo giá trị của biến "I" lên 0 sau đó tăng giá trị của nó lên 2, tức là, i = i+2. Bước 4: In các yếu tố có mặt ở các vị trí lẻ.

    Làm thế nào tôi có thể có được các chỉ số lẻ của một danh sách?

    Một cách là sử dụng hàm phạm vi [], sao cho nó bắt đầu ở chỉ số lẻ đầu tiên, 1 và có giá trị bước là 2, để nó trả về các chỉ số lẻ 1, 3, 5, .... Một cách khác để có được các chỉ số lẻ của danh sách là sử dụng khả năng hiểu danh sách, trong đó bạn có thể sử dụng một điều kiện sẽ chỉ bao gồm các chỉ số lẻ.using the range[] function, such that it starts at the first odd index, 1 , and has a step value of 2 , so that it returns the odd indices 1, 3, 5, ... . Another way to obtain the odd indices of a list is using list comprehension, in which you can use a condition that will only include the odd indices.

    Làm thế nào để bạn tách các số thậm chí và số lẻ trong danh sách Python?

    Bước 1: Tạo danh sách đầu vào của người dùng.Bước 2: Lấy hai danh sách trống một cho ODD và một cho chẵn.Bước 3: Sau đó, qua mỗi phần tử trong danh sách chính.Bước 4: Mỗi phần tử được chia cho 2, nếu phần còn lại là 0 thì nó thậm chí là số và thêm vào danh sách chẵn, nếu không thì số lẻ của nó và thêm vào danh sách lẻ.

    Bài Viết Liên Quan

    Chủ Đề