HomeLập trìnhJavaScriptTypeError Chỉ số...

TypeError Chỉ số chuỗi phải là số nguyên Lỗi Python [Solved]


Nếu bạn cố gắng truy cập các giá trị từ một từ điển hoặc đối tượng có thể lặp lại bằng cách sử dụng giá trị chuỗi thay vì giá trị số nguyên thì bạn sẽ nhận được thông báo lỗi sau:

TypeError: string indices must be integers

Trong bài viết này, tôi sẽ chỉ cho bạn các ví dụ về lý do tại sao bạn có thể nhận được thông báo lỗi này và cách khắc phục nó.

Cách truy cập các giá trị từ danh sách trong Python

Trong ví dụ này, chúng ta có danh sách các nhạc cụ sau:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']

Nếu chúng tôi muốn truy cập công cụ thứ ba trong danh sách, chúng tôi sẽ sử dụng giá trị chỉ số bằng số là 2:

instruments[2]

Dòng mã sau đây sẽ in ra chính xác kết quả của oboe:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']
print(instruments[2])
Screen-Shot-2022-03-06-at-11.41.54-PM

Nếu tôi cố truy cập vào cùng danh sách đó nhưng thay vào đó lại sử dụng chỉ mục chuỗi của 'oboe'thì nó sẽ dẫn đến một thông báo lỗi:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']
print(instruments['oboe'])
Ảnh chụp màn hình-2022-03-06-at-11.43.28-PM

Nếu bạn gặp thông báo lỗi này, hãy kiểm tra kỹ để đảm bảo rằng bạn đang sử dụng giá trị chỉ mục số để truy cập các phần tử thay vì giá trị chuỗi.

Đọc thêm  10 thủ thuật JavaScript mà mọi nhà phát triển web nên biết

Cách truy cập các giá trị từ một từ điển trong Python

Hãy sửa đổi ví dụ trước của chúng ta để tạo một từ điển các công cụ và số lượng.

instruments = {
    'flute': 2,
    'trumpet': 5,
    'oboe': 1,
    'percussion': 4,
    'guitar': 9
}

Nếu chúng tôi muốn in ra tất cả các giá trị từ instruments từ điển, thì chúng ta có thể sử dụng một vòng lặp với .values() phương pháp.

for quantity in instruments.values():
    print(quantity)
Screen-Shot-2022-03-06-at-11.59.57-PM

Nếu chúng tôi loại bỏ .values() và cố gắng truy cập các giá trị bằng chỉ số chuỗi, thì chúng tôi sẽ nhận được thông báo lỗi sau:

for quantity in instruments:
    print(quantity['flute'])
    print(quantity['trumpet'])
    print(quantity['oboe'])
    print(quantity['percussion'])
    print(quantity['guitar'])
Screen-Shot-2022-03-07-at-12.15.23-AM

Nếu bạn in ra quantitythì bạn sẽ thấy đó là một chuỗi.

for quantity in instruments:
    print(quantity)
Screen-Shot-2022-03-07-at-12.22.50-AM

Nếu bạn đã cố viết quantity['flute']sau đó nó chuyển thành 'flute'['flute'] điều này không có ý nghĩa trong Python.

Cách giải quyết vấn đề này là tham khảo instruments từ điển thay vì sử dụng quantity.

Mã tái cấu trúc sau đây sẽ tạo ra kết quả chính xác:

instruments = {
    'flute': 2,
    'trumpet': 5,
    'oboe': 1,
    'percussion': 4,
    'guitar': 9
}

print(instruments['flute'])
print(instruments['trumpet'])
print(instruments['oboe'])
print(instruments['percussion'])
print(instruments['guitar'])
Screen-Shot-2022-03-07-at-12.19.21-AM

Tôi hy vọng bạn thích bài viết này và chúc may mắn trên hành trình Python của bạn.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status