Type conversion (int, float, string) in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
We want to understand how the time it takes to convert data types changes as the input size grows.
How does converting numbers or text take more or less time when the input is bigger?
Analyze the time complexity of the following code snippet.
text_numbers = ["123", "456", "789"]
converted = []
for num_str in text_numbers:
converted.append(int(num_str))
This code converts a list of strings representing numbers into integers one by one.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Converting each string to an integer inside a loop.
- How many times: Once for each item in the list.
As the list gets longer, the number of conversions grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 conversions |
| 100 | 100 conversions |
| 1000 | 1000 conversions |
Pattern observation: The work grows directly with the number of items.
Time Complexity: O(n * m)
This means the time to convert grows linearly with the number of items and the length of each string.
[X] Wrong: "Converting a string to an int always takes the same time no matter how many items there are or how long the strings are."
[OK] Correct: Each conversion takes time proportional to the length of the string, so longer strings or more items mean more total time.
Understanding how simple operations like type conversion scale helps you explain your code's efficiency clearly and confidently.
"What if we converted a single very long string number instead of many short ones? How would the time complexity change?"
Practice
int() do when applied to a string like '123'?Solution
Step 1: Understand int() function behavior
Theint()function converts a string containing digits into an integer number.Step 2: Apply int() to '123'
Applyingint('123')converts the string to the integer 123.Final Answer:
Converts the string to the integer 123 -> Option AQuick Check:
int('123') = 123 [OK]
- Thinking int() converts to float
- Expecting string unchanged
- Confusing with syntax error
Solution
Step 1: Recall correct function call syntax
Functions in Python require parentheses around arguments, e.g.,int(3.14).Step 2: Check each option
int(3.14) uses correct syntax. Others have syntax errors or invalid argument formats.Final Answer:
int(3.14) -> Option CQuick Check:
int(3.14) is valid syntax [OK]
- Omitting parentheses
- Using commas instead of dots
- Adding extra dots in numbers
value = '45.67' result = float(value) print(int(result))
Solution
Step 1: Convert string to float
float('45.67')converts the string to the float number 45.67.Step 2: Convert float to int
int(45.67)converts the float to integer by dropping the decimal part, resulting in 45.Final Answer:
45 -> Option BQuick Check:
int(float('45.67')) = 45 [OK]
- Expecting rounding to 46
- Printing float instead of int
- Confusing string and number types
num = 'abc' converted = int(num) print(converted)
Solution
Step 1: Identify cause of error
Trying to convert 'abc' to int causes a ValueError because 'abc' is not numeric.Step 2: Fix by using numeric string
Replacing 'abc' with a string of digits like '123' allows int() to convert successfully.Final Answer:
Change 'abc' to a string of digits like '123' -> Option DQuick Check:
int('123') works, int('abc') errors [OK]
- Using float() on non-numeric string
- Removing conversion but expecting int
- Adding quotes around function name
['10', '20.5', '30', '40.0']. How do you convert all to integers correctly in Python?Solution
Step 1: Understand list contents
The list has strings representing integers and floats, e.g., '20.5' and '40.0'.Step 2: Convert strings to float first
Direct int() on '20.5' causes error, so convert to float first:float('20.5')= 20.5.Step 3: Convert float to int
Then convert float to int withint(20.5)= 20, dropping decimals.Final Answer:
Use [int(float(x)) for x in list] -> Option AQuick Check:
int(float('20.5')) = 20 [OK]
- Trying int() directly on float strings
- Swapping int and float conversions
- Converting to string instead of int
