Hướng dẫn how do you print the position of an element in a list python? - làm thế nào để bạn in vị trí của một phần tử trong danh sách python?

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về phương thức Danh sách Python () với sự trợ giúp của các ví dụ.

Phương thức

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
6 trả về chỉ mục của phần tử được chỉ định trong danh sách.

Thí dụ

animals = ['cat', 'dog', 'rabbit', 'horse']

# get the index of 'dog' index = animals.index('dog')

print(index) # Output: 1


Cú pháp của chỉ mục danh sách ()

Cú pháp của phương thức danh sách

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
6 là:

list.index(element, start, end)

Danh sách chỉ mục () tham số

Phương thức danh sách

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
6 có thể mất tối đa ba đối số:

  • Phần tử - Phần tử được tìm kiếm - the element to be searched
  • Bắt đầu (Tùy chọn) - Bắt đầu tìm kiếm từ chỉ mục này (optional) - start searching from this index
  • End (Tùy chọn) - Tìm kiếm phần tử lên đến chỉ mục này (optional) - search the element up to this index

Trả về giá trị từ chỉ mục danh sách ()

  • Phương thức
    # vowels list
    vowels = ['a', 'e', 'i', 'o', 'i', 'u']
    
    # index of 'e' in vowels
    

    index = vowels.index('e')

    print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

    index = vowels.index('i')

    print('The index of i:', index)
    6 trả về chỉ mục của phần tử đã cho trong danh sách.
  • Nếu phần tử không được tìm thấy, một ngoại lệ
    The index of e: 1
    The index of i: 2
    0 sẽ được nâng lên.

Lưu ý: Phương thức

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
6 chỉ trả về lần xuất hiện đầu tiên của phần tử khớp. The
# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
6 method only returns the first occurrence of the matching element.


Ví dụ 1: Tìm chỉ mục của phần tử

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)

Đầu ra

The index of e: 1
The index of i: 2

Ví dụ 2: Chỉ mục của phần tử không có trong danh sách

# vowels list
vowels = ['a', 'e', 'i', 'o', 'u']

# index of 'p' is vowels

index = vowels.index('p')

print('The index of p:', index)

Đầu ra

ValueError: 'p' is not in list

Ví dụ 2: Chỉ mục của phần tử không có trong danh sách

# alphabets list
alphabets = ['a', 'e', 'i', 'o', 'g', 'l', 'i', 'u']

# index of 'i' in alphabets

index = alphabets.index('e') # 1

print('The index of e:', index) # 'i' after the 4th index is searched

index = alphabets.index('i', 4) # 6

print('The index of i:', index) # 'i' between 3rd and 5th index is searched

index = alphabets.index('i', 3, 5) # Error!

print('The index of i:', index)

Đầu ra

The index of e: 1
The index of i: 6
Traceback (most recent call last):
  File "*lt;string>", line 13, in 
ValueError: 'i' is not in list

Tìm chỉ mục của một mục được cung cấp một danh sách chứa nó trong Python

Đối với danh sách

The index of e: 1
The index of i: 2
2 và một mục trong danh sách
The index of e: 1
The index of i: 2
3, cách sạch nhất để có được chỉ số của nó (1) trong Python là gì?

Vâng, chắc chắn, có phương thức chỉ mục, trả về chỉ số của lần xuất hiện đầu tiên:

>>> l = ["foo", "bar", "baz"]
>>> l.index('bar')
1

Có một vài vấn đề với phương pháp này:

  • Nếu giá trị không có trong danh sách, bạn sẽ nhận được
    The index of e: 1
    The index of i: 2
    0
  • Nếu có nhiều hơn một trong các giá trị nằm trong danh sách, bạn chỉ nhận được chỉ mục cho cái đầu tiên

Không có giá trị

Nếu giá trị có thể bị thiếu, bạn cần bắt

The index of e: 1
The index of i: 2
0.

Bạn có thể làm như vậy với một định nghĩa có thể tái sử dụng như thế này:

def index(a_list, value):
    try:
        return a_list.index(value)
    except ValueError:
        return None

Và sử dụng nó như thế này:

list.index(element, start, end)
0

Và nhược điểm của điều này là bạn có thể sẽ có một kiểm tra nếu giá trị được trả về

The index of e: 1
The index of i: 2
6 hoặc
The index of e: 1
The index of i: 2
7 Không có:

list.index(element, start, end)
1

Nhiều hơn một giá trị trong danh sách

Nếu bạn có thể xảy ra nhiều hơn, bạn sẽ không nhận được thông tin đầy đủ với

The index of e: 1
The index of i: 2
8:not get complete information with
The index of e: 1
The index of i: 2
8:

list.index(element, start, end)
2

Bạn có thể liệt kê vào danh sách hiểu các chỉ mục:

list.index(element, start, end)
3

Nếu bạn không có sự cố, bạn có thể kiểm tra điều đó với việc kiểm tra kết quả của Boolean hoặc không làm gì nếu bạn lặp lại kết quả:

list.index(element, start, end)
4

Dữ liệu tốt hơn với gấu trúc

Nếu bạn có gấu trúc, bạn có thể dễ dàng lấy thông tin này với một đối tượng loạt:

list.index(element, start, end)
5

Kiểm tra so sánh sẽ trả về một loạt các booleans:

list.index(element, start, end)
6

Vượt qua loạt Booleans đó cho loạt phim thông qua ký hiệu đăng ký và bạn chỉ nhận được các thành viên phù hợp:

list.index(element, start, end)
7

Nếu bạn chỉ muốn các chỉ mục, thuộc tính chỉ mục sẽ trả về một loạt các số nguyên:

list.index(element, start, end)
8

Và nếu bạn muốn chúng trong một danh sách hoặc tuple, chỉ cần chuyển chúng cho hàm tạo:

list.index(element, start, end)
9

Có, bạn cũng có thể sử dụng danh sách hiểu biết với việc liệt kê, nhưng theo ý kiến ​​của tôi, đó không phải là thanh lịch, bạn đang thực hiện các bài kiểm tra về sự bình đẳng trong Python, thay vì để mã được xây dựng trong C xử lý nó:

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
0

Đây có phải là một vấn đề xy?

Vấn đề XY là hỏi về giải pháp cố gắng của bạn hơn là vấn đề thực tế của bạn.

Tại sao bạn nghĩ rằng bạn cần chỉ mục đưa ra một yếu tố trong danh sách?

Nếu bạn đã biết giá trị, tại sao bạn quan tâm nó ở đâu trong danh sách?

Nếu giá trị không có, việc bắt

The index of e: 1
The index of i: 2
0 khá dài dòng - và tôi thích tránh điều đó.

Dù sao thì tôi cũng thường lặp đi lặp lại danh sách, vì vậy tôi thường sẽ giữ một con trỏ đến bất kỳ thông tin thú vị nào, nhận chỉ mục được liệt kê.

Nếu bạn đang sử dụng dữ liệu, có lẽ bạn nên sử dụng gấu trúc - có công cụ thanh lịch hơn nhiều so với các cách giải quyết Python thuần túy mà tôi đã hiển thị.

Tôi không nhớ là cần

The index of e: 1
The index of i: 2
8, bản thân tôi. Tuy nhiên, tôi đã xem qua thư viện tiêu chuẩn Python và tôi thấy một số cách sử dụng tuyệt vời cho nó.

Có rất nhiều, rất nhiều cách sử dụng cho nó trong

# vowels list
vowels = ['a', 'e', 'i', 'o', 'u']

# index of 'p' is vowels

index = vowels.index('p')

print('The index of p:', index)
1, cho GUI và phân tích cú pháp văn bản.

Mô -đun

# vowels list
vowels = ['a', 'e', 'i', 'o', 'u']

# index of 'p' is vowels

index = vowels.index('p')

print('The index of p:', index)
2 sử dụng nó để tìm các dấu hiệu nhận xét trong mô -đun để tự động tái tạo danh sách các từ khóa trong đó thông qua metaprogramming.

Trong lib/mailbox.py dường như đang sử dụng nó giống như một ánh xạ được đặt hàng:

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
1

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
2

Trong lib/http/cookiejar.py, dường như được sử dụng để có được tháng tiếp theo:

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
3

Trong lib/tarfile.py tương tự như distutils để có được một lát lên một vật phẩm:

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
4

Trong lib/pickletools.py:

# vowels list
vowels = ['a', 'e', 'i', 'o', 'i', 'u']

# index of 'e' in vowels

index = vowels.index('e')

print('The index of e:', index) # element 'i' is searched # index of the first 'i' is returned

index = vowels.index('i')

print('The index of i:', index)
5

Những gì các cách sử dụng này dường như có điểm chung là chúng dường như hoạt động trên các danh sách các kích thước bị ràng buộc (quan trọng vì thời gian tra cứu O (n) cho

The index of e: 1
The index of i: 2
8) và chúng chủ yếu được sử dụng trong phân tích cú pháp (và UI trong trường hợp không hoạt động) .

Mặc dù có trường hợp sử dụng cho nó, nhưng chúng khá hiếm. Nếu bạn thấy mình đang tìm kiếm câu trả lời này, hãy tự hỏi liệu những gì bạn đang làm có phải là cách sử dụng trực tiếp nhất của các công cụ được cung cấp bởi ngôn ngữ cho trường hợp sử dụng của bạn không.