<< Chapter < Page | Chapter >> Page > |
Figure 3 . Output from the code in Listing 3. |
---|
['a', 'b', 'c', 'd', 'e']
[1, 2, 'A', 'B', 'e'] |
Then the code in Listing 3 unpacks the four-element tuple referred to by t3 into the first four elements in the list. (Remember, a list is mutable, so the values of its items can be changed.)
Then the contents of the list are displayed again producing the second line of text in Figure 3 . As you can see from Figure 3 , the first four items in the list were replaced by the four items from the tuple. The fifth item in the list was not modified.
A complete listing of the program discussed above is provided in Listing 4 .
Listing 4 . Complete program listing. |
---|
# Illustrates unpacking a tuple
#------------------------------# Create a pair of tuples
t1 = 1,2t2 = "A","B"
# Concatenate and print themt3 = t1 + t2
print(t3)# Unpack the tuple and print individual elements
w,x,y,z = t3print(w)
print(x)print(y)
print(z)# Create and print a list
L1 = ["a","b","c","d","e"]# Unpack tuple into the list and print it
print(L1)L1[0],L1[1],L1[2],L1[3]= t3
print(L1) |
Figure 4 shows the output from the code in Listing 4 .
Figure 4 . Output from the code in Listing 4. |
---|
(1, 2, 'A', 'B')
12
AB
['a', 'b', 'c', 'd', 'e'][1, 2, 'A', 'B', 'e'] |
Figure 5 shows a visualization of the tuples in the program after the first five statements in the code block have been executed.This is a case where you need to step through the program and observe changes in the diagram on the right to appreciate the behavior of the program.
Figure 5. Visualization of the tuples in the program.
I encourage you to copy the code from Listing 4 . Execute the code and confirm that you get the same results as those shown in Figure 4 . Experiment with the code, making changes, and observing the results of your changes. Make certain that youcan explain why your changes behave as they do.
For example, you might want to try the following experiment. There is a line in the program shown in Listing 4 that reads as follows:
L1 = ["a","b","c","d","e"]
Modify the program, changing this line so that it reads as follows:
L1 = ("a","b","c","d","e")
or
L1 = "a","b","c","d","e"
By now you should recognize that either of these modifications will change L1 from an ordinary mutable list to a tuple (an immutable list) .
Now execute the modified program. Your output should look something like that shown in Figure 6 .
Figure 6 . Output from the modified program. |
---|
(1, 2, 'A', 'B')
12
AB
('a', 'b', 'c', 'd', 'e')Traceback (most recent call last):
File "1359-1130-07.py", line 24, in<module>L1[0],L1[1],L1[2],L1[3]= t3
TypeError: 'tuple' object does not support item assignment |
Everything should work well until the attempt is made to unpack the tuple named t3 and to assign the items from that tuple into the individual items of the new tuple named L1 .
The items in a tuple are immutable, meaning that they cannot be changed. Therefore, the program crashes at this point with the error shown in Figure 6 .
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
-end-
Notification Switch
Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?