Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[-]
Welcome
You have to register before you can post on our site.

Username:


Password:





[-]
Discord Widget

[-]
Twitter: SickGaming

[-]
Latest Threads
[Oracle Blog] What’s New in Java Managem...
Last Post: xSicKxBot
Today 06:51 AM
» Replies: 0
» Views: 7
[Tut] How to Flush Your Cache on Windows...
Last Post: xSicKxBot
Today 06:51 AM
» Replies: 0
» Views: 5
(Indie Deal) Match3 Love Bundle & MechWa...
Last Post: xSicKxBot
Today 06:51 AM
» Replies: 0
» Views: 5
PC - Backfirewall_
Last Post: xSicKxBot
Today 06:51 AM
» Replies: 0
» Views: 5
[Oracle Blog] JavaOne is Back!
Last Post: xSicKxBot
Yesterday 12:34 PM
» Replies: 0
» Views: 10
[Tut] How I Built a House Price Predicti...
Last Post: xSicKxBot
Yesterday 12:33 PM
» Replies: 0
» Views: 8
[Tut] How to Install phpMyAdmin on a Win...
Last Post: xSicKxBot
Yesterday 12:33 PM
» Replies: 0
» Views: 8
(Indie Deal) PlayStation Sale: God of Wa...
Last Post: xSicKxBot
Yesterday 12:33 PM
» Replies: 0
» Views: 7
News - New Marvel Book Details The MCU's...
Last Post: xSicKxBot
Yesterday 12:33 PM
» Replies: 0
» Views: 7
PC - Marvel's Midnight Suns - The Good, ...
Last Post: xSicKxBot
Yesterday 12:33 PM
» Replies: 0
» Views: 7

[Tut] (Fixed) Python TypeError ‘bool’ object is not subscriptable

#1
(Fixed) Python TypeError ‘bool’ object is not subscriptable

5/5 – (1 vote)

Problem Formulation


Consider the following minimal example where a TypeError: 'bool' object is not subscriptable occurs:

boo = True
boo[0]
# or:
boo[3:6]

This yields the following output:

Traceback (most recent call last): File "C:\Users\xcent\Desktop\code.py", line 2, in <module> boo[0]
TypeError: 'bool' object is not subscriptable

Solution Overview


Python raises the TypeError: 'bool' object is not subscriptable if you use indexing or slicing with the square bracket notation on a Boolean variable. However, the Boolean type is not indexable and you cannot slice it—it’s not iterable!

In other words, the Boolean class doesn’t define the __getitem__() method.

boo = True
boo[0] # Error!
boo[3:6] # Error!
boo[-1] # Error!
boo[:] # Error!

You can fix this error by

  1. converting the Boolean to a string using the str() function because strings are subscriptable,
  2. removing the indexing or slicing call,
  3. defining a dummy __getitem__() method for a custom “Boolean wrapper class”.

🌍 Related Tutorials: Check out our tutorials on indexing and slicing on the Finxter blog to improve your skills!

Method 1: Convert Boolean to a String


If you want to access individual characters of the “Boolean” strings "True" and "False", consider converting the Boolean to a string using the str() built-in function. A string is subscriptable so the error will not occur when trying to index or slice the converted string.

boo = True
boo_string = str(boo) print(boo_string[0])
# T
print(boo_string[1:-1])
# ru

Method 2: Put Boolean Into List


A simple way to resolve this error is to put the Boolean into a list that is subscriptable—that is you can use indexing or slicing on lists that define the __getitem__() magic method.

bools = [True, True, True, False, False, False, True, False]
print(bools[-1])
# False print(bools[3:-3])
# [False, False]

Method 3: Define the __getitem__() Magic Method


You can also define your own wrapper type around the Boolean variable that defines a dunder method for __getitem__() so that every indexing or slicing operation returns a specified value as defined in the dunder method.

class MyBool: def __init__(self, boo): self.boo = boo def __getitem__(self, index): return self.boo my_boolean = MyBool(True) print(my_boolean[0])
# True print(my_boolean[:-1])
# True

This hack is generally not recommended, I included it just for comprehensibility and to teach you something new. 😉

Summary


The error message “TypeError: 'boolean' object is not subscriptable” happens if you access a boolean boo like a list such as boo[0] or boo[1:4]. To solve this error, avoid using slicing or indexing on a Boolean or use a subscriptable object such as lists or strings.



https://www.sickgaming.net/blog/2022/10/...criptable/
Reply





Users browsing this thread:
1 Guest(s)

𝚂̷𝚒̷𝚌̷𝚔̷𝙶̷𝚊̷𝚖̷𝚒̷𝚗̷𝚐̷ 𝙷̷𝚘̷𝚖̷𝚎̷

Copyright © SickGaming.net 2022