Hướng dẫn python check list index out of range - danh sách kiểm tra python nằm ngoài phạm vi

Tôi đang sử dụng đẹp và phân tích một số HTML.BeautifulSoup and parsing some HTMLs.

Tôi đang nhận được một dữ liệu nhất định từ mỗi HTML (sử dụng cho vòng lặp) và thêm dữ liệu đó vào một danh sách nhất định.

Vấn đề là, một số HTML có định dạng khác nhau (và chúng không có dữ liệu mà tôi muốn ở đó).

Vì vậy, tôi đã cố gắng sử dụng xử lý ngoại lệ và thêm giá trị

list index out of range.
7 vào danh sách (tôi nên làm điều này vì chuỗi dữ liệu là quan trọng.)

Chẳng hạn, tôi có một mã như:

soup = BeautifulSoup(links)
dlist = soup.findAll('dd', 'title')
# I'm trying to find content between 
and
gotdata = dlist[1] # and what i want is the 2nd content of those newlist.append(gotdata) # and I add that to a newlist

Và một số liên kết không có bất kỳ

list index out of range.
8 nào, vì vậy những gì tôi muốn làm là thêm chuỗi
list index out of range.
7 vào danh sách thay thế.

Lỗi xuất hiện:

list index out of range.

Những gì tôi đã làm đã thử là thêm một số dòng như thế này:

if not dlist[1]:  
   newlist.append('null')
   continue

Nhưng nó không thành công. Nó vẫn hiển thị lỗi:

list index out of range.

Tôi nên làm gì với cái này? Tôi có nên sử dụng xử lý ngoại lệ không? hoặc có cách nào dễ dàng hơn?

Bất kỳ đề xuất? Bất kỳ sự giúp đỡ sẽ thực sự tuyệt vời!

Hướng dẫn python check list index out of range - danh sách kiểm tra python nằm ngoài phạm vi

Trong bài viết này, bạn sẽ thấy một vài lý do gây ra lỗi

if not dlist[1]:  
   newlist.append('null')
   continue
0 Python.

Bên cạnh việc biết lý do tại sao lỗi này xảy ra ở nơi đầu tiên, bạn cũng sẽ học một số cách để tránh nó.

Bắt đầu nào!

Cách tạo danh sách trong Python

Để tạo một đối tượng danh sách trong Python, bạn cần phải:

  • Đặt tên cho danh sách,
  • Sử dụng toán tử chuyển nhượng,
    if not dlist[1]:  
       newlist.append('null')
       continue
    
    1,
  • và bao gồm 0 hoặc nhiều mục danh sách bên trong dấu ngoặc vuông, ________ 22. Mỗi mục danh sách cần được phân tách bằng dấu phẩy.

Ví dụ: để tạo danh sách các tên bạn sẽ làm như sau:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

Mã trên đã tạo ra một danh sách có tên

if not dlist[1]:  
   newlist.append('null')
   continue
3 có bốn giá trị:
if not dlist[1]:  
   newlist.append('null')
   continue
4.

Cách kiểm tra độ dài của danh sách trong Python

Để kiểm tra độ dài của một danh sách trong Python, hãy sử dụng phương pháp

if not dlist[1]:  
   newlist.append('null')
   continue
5 tích hợp của Python.

if not dlist[1]:  
   newlist.append('null')
   continue
5 sẽ trả về một số nguyên, sẽ là số lượng các mục được lưu trữ trong danh sách.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#create a variable called name_length to store the length of the list
name_length = len(names)

#print value of variable to the console
print(name_length)

#output
#4

Có bốn mục được lưu trữ trong danh sách, do đó độ dài của danh sách sẽ là bốn.

Cách truy cập các mục danh sách cá nhân trong Python

Mỗi mục trong danh sách có số chỉ mục riêng.

Lập chỉ mục trong Python và hầu hết các ngôn ngữ lập trình hiện đại, bắt đầu từ 0.

Điều này có nghĩa là mục đầu tiên trong danh sách có chỉ mục 0, mục thứ hai có chỉ mục là 1, v.v.

Bạn có thể sử dụng số chỉ mục để truy cập vào mục riêng lẻ.

Để truy cập một mục trong danh sách bằng số chỉ mục của nó, trước tiên hãy viết tên của danh sách. Sau đó, bên trong dấu ngoặc vuông, bao gồm intiger tương ứng với số chỉ mục của mục.

Lấy ví dụ từ trước đó, đây là cách bạn sẽ truy cập từng mục bên trong danh sách bằng số chỉ mục của nó:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[0] # Kelly
names[1] # Nelly
names[2] # Jimmy
names[3] # Lenny

Bạn cũng có thể sử dụng lập chỉ mục tiêu cực để truy cập các mục bên trong danh sách trong Python.

Để truy cập mục cuối cùng, bạn sử dụng giá trị chỉ mục là -1. Để kích hoạt mục thứ hai đến cuối cùng, bạn sử dụng giá trị chỉ mục là -2.last item, you use the index value of -1. To acces the second to last item, you use the index value of -2.

Dưới đây là cách bạn sẽ truy cập từng mục trong danh sách bằng cách sử dụng lập chỉ mục âm:

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[-4] # Kelly
names[-3]# Nelly
names[-2] # Jimmy
names[-1] # Lenny

Tại sao lỗi if not dlist[1]: newlist.append('null') continue 7 xảy ra trong Python?

Sử dụng một số chỉ mục nằm ngoài phạm vi của danh sách

Bạn sẽ gặp lỗi

if not dlist[1]:  
   newlist.append('null')
   continue
7 khi bạn thử và truy cập một mục bằng cách sử dụng một giá trị nằm ngoài phạm vi chỉ mục của danh sách và không tồn tại.

Điều này khá phổ biến khi bạn cố gắng truy cập mục cuối cùng của danh sách hoặc mục đầu tiên nếu bạn đang sử dụng lập chỉ mục âm.

Hãy quay lại danh sách chúng tôi đã sử dụng cho đến nay.

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

Giả sử tôi muốn truy cập mục cuối cùng, "Lenny" và cố gắng làm như vậy bằng cách sử dụng mã sau:

print(names[4])

#output

#Traceback (most recent call last):
#  File "/Users/dionysialemonaki/python_articles/demo.py", line 3, in 
#    print(names[4])
#IndexError: list index out of range

Nói chung, phạm vi chỉ mục của một danh sách là

if not dlist[1]:  
   newlist.append('null')
   continue
9, với
list index out of range.
0 là tổng số giá trị trong danh sách.

Với tổng giá trị của danh sách ở trên là

list index out of range.
1, phạm vi chỉ mục là
list index out of range.
2.

Bây giờ, chúng ta hãy cố gắng truy cập một mục bằng cách sử dụng lập chỉ mục tiêu cực.

Giả sử tôi muốn truy cập mục đầu tiên trong danh sách, "Kelly", bằng cách sử dụng lập chỉ mục tiêu cực.

list index out of range.
0

Khi sử dụng lập chỉ mục âm, phạm vi chỉ mục của danh sách là

list index out of range.
3, trong đó
list index out of range.
4 Tổng số mục có trong danh sách.

Với tổng số mục trong danh sách là

list index out of range.
1, phạm vi chỉ mục là
list index out of range.
6.

Sử dụng sai giá trị trong hàm list index out of range. 7 trong vòng lặp Python list index out of range. 8

Bạn sẽ gặp lỗi

if not dlist[1]:  
   newlist.append('null')
   continue
7 khi lặp qua danh sách và cố gắng truy cập một mục không tồn tại.

Một ví dụ phổ biến trong đó điều này có thể xảy ra là khi bạn sử dụng số nguyên sai trong hàm

list index out of range.
7 của Python.

Hàm

list index out of range.
7 thường có trong một số nguyên, cho biết nơi đếm sẽ dừng.

Ví dụ,

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
2 chỉ ra rằng việc đếm sẽ bắt đầu từ
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
3 và kết thúc tại
list index out of range.
1.

Vì vậy, theo mặc định, việc đếm bắt đầu tại vị trí

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
3, được tăng lên bởi
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
6 mỗi lần và số lượng lên đến - nhưng không bao gồm - vị trí mà việc đếm sẽ dừng lại.

Hãy lấy ví dụ sau:

list index out of range.
1

Ở đây, danh sách

if not dlist[1]:  
   newlist.append('null')
   continue
3 có bốn giá trị.

Tôi muốn lặp qua danh sách và in ra từng giá trị.

Khi tôi sử dụng

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
2, tôi đã nói với trình thông dịch Python để in các giá trị ở vị trí
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
9.

Tuy nhiên, không có mục ở vị trí 4.

Bạn có thể thấy điều này bằng cách trước tiên in ra số lượng vị trí và sau đó là giá trị ở vị trí đó.

list index out of range.
2

Bạn thấy rằng ở vị trí

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
3 là "Kelly", ở vị trí
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
6 là "Nelly", ở vị trí
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#create a variable called name_length to store the length of the list
name_length = len(names)

#print value of variable to the console
print(name_length)

#output
#4
2 là "Jimmy" và ở vị trí
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

#create a variable called name_length to store the length of the list
name_length = len(names)

#print value of variable to the console
print(name_length)

#output
#4
3 là "Lenny".

Khi nói đến vị trí thứ tư, được chỉ định với

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
2 cho biết các vị trí của
names = ["Kelly", "Nelly", "Jimmy", "Lenny"]
9, không có gì để in ra và do đó trình thông dịch đưa ra lỗi.

Một cách để khắc phục điều này là giảm số nguyên trong

list index out of range.
7:

list index out of range.
3

Một cách khác để khắc phục điều này khi sử dụng vòng lặp

list index out of range.
8 là chuyển độ dài của danh sách làm đối số cho hàm
list index out of range.
7. Bạn làm điều này bằng cách sử dụng chức năng Python tích hợp
if not dlist[1]:  
   newlist.append('null')
   continue
5, như được hiển thị trong phần trước:

list index out of range.
4

Khi chuyển

if not dlist[1]:  
   newlist.append('null')
   continue
5 như một đối số cho
list index out of range.
7, hãy đảm bảo rằng bạn không phạm sai lầm sau:don't make the following mistake:

list index out of range.
5

Sau khi chạy mã, bạn sẽ một lần nữa gặp lỗi

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[0] # Kelly
names[1] # Nelly
names[2] # Jimmy
names[3] # Lenny
2:

list index out of range.
6

Sự kết luận

Hy vọng rằng bài viết này đã cho bạn một số hiểu biết về lý do tại sao lỗi

names = ["Kelly", "Nelly", "Jimmy", "Lenny"]

names[0] # Kelly
names[1] # Nelly
names[2] # Jimmy
names[3] # Lenny
2 xảy ra và một số cách bạn có thể tránh được nó.

Nếu bạn muốn tìm hiểu thêm về Python, hãy xem chứng nhận Python của Freecodecamp. Bạn sẽ bắt đầu học một cách thân thiện với người mới bắt đầu. Bạn cũng sẽ xây dựng năm dự án vào cuối để đưa vào thực tế và giúp củng cố những gì bạn đã học.

Cảm ơn bạn đã đọc và mã hóa hạnh phúc!



Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Danh sách chỉ mục ra khỏi phạm vi trong Python là gì?

Trong bài viết này, chúng tôi đã nói về IndexError: List Index ngoài phạm vi lỗi trong Python.Lỗi này thường xảy ra khi chúng tôi cố gắng truy cập một mục trong danh sách bằng cách sử dụng chỉ mục không tồn tại trong danh sách.

Chỉ số nằm ngoài phạm vi là gì?

Chỉ mục ra khỏi phạm vi có nghĩa là mã đang cố gắng truy cập một ma trận hoặc vectơ bên ngoài giới hạn của nó.Ví dụ: x = rndn (5, 1);y = x [6, 1];sẽ gây ra lỗi này, bởi vì nó đang cố gắng truy cập vào phần tử thứ 6 trong tổng số 5.the code is trying to access a matrix or vector outside of its bounds. For example: x = rndn(5, 1); y = x[6, 1]; would cause this error, because it is trying to access the 6th element out of a total of 5.