Home >Backend Development >Python Tutorial >What are mutable and immutable data types in Python?
In Python, data types can be categorized as either mutable or immutable. Mutable data types are those that can be modified after they are created. This means you can change their content without having to create a new object. On the other hand, immutable data types are those that cannot be modified once they are created. Any operation that appears to modify an immutable type actually results in the creation of a new object.
Examples of mutable data types in Python include:
Here are some code examples to illustrate:
<code class="python"># Lists my_list = [1, 2, 3] my_list.append(4) # Modifying the list print(my_list) # Output: [1, 2, 3, 4] # Dictionaries my_dict = {'a': 1, 'b': 2} my_dict['c'] = 3 # Adding a new key-value pair print(my_dict) # Output: {'a': 1, 'b': 2, 'c': 3} # Sets my_set = {1, 2, 3} my_set.add(4) # Adding an element print(my_set) # Output: {1, 2, 3, 4} # Byte Arrays my_bytearray = bytearray(b'hello') my_bytearray[0] = 72 # Modifying the first byte print(my_bytearray) # Output: bytearray(b'Hello')</code>
The immutability of certain data types in Python affects programming in several ways:
Here is an example illustrating the hashability issue:
<code class="python"># Immutable (hashable) my_tuple = (1, 2, 3) my_dict = {my_tuple: 'value'} print(my_dict) # Output: {(1, 2, 3): 'value'} # Mutable (not hashable) my_list = [1, 2, 3] # This will raise a TypeError # my_dict = {my_list: 'value'}</code>
The performance implications of using mutable versus immutable data types in Python can be summarized as follows:
Here is a code example illustrating the performance difference:
<code class="python">import timeit # Mutable: Appending to a list mutable_time = timeit.timeit('l = [1, 2, 3]; l.append(4)', number=1000000) print(f"Time to append to a list: {mutable_time}") # Immutable: Creating a new tuple immutable_time = timeit.timeit('t = (1, 2, 3); t = t (4,)', number=1000000) print(f"Time to create a new tuple: {immutable_time}")</code>
In this example, appending to a list (mutable operation) is generally faster than creating a new tuple (immutable operation). However, actual performance differences can vary based on the specific use case and the scale of the operations being performed.
The above is the detailed content of What are mutable and immutable data types in Python?. For more information, please follow other related articles on the PHP Chinese website!