<< Chapter < Page | Chapter >> Page > |
Figure 1 shows the output produced by the code in Listing 1 . The empty tuple is displayed simply as a pair of empty parentheses, and the length of the emptytuple is shown to be zero.
Figure 1 . Output from the code in Listing 1. |
---|
Create and print empty tuple
()Length of empty tuple is
0 |
There are probably no surprises regarding an empty tuple. However, there may be some surprises in the code fragment shown in Listing 2 . This fragment deals with a tuple containing only one element.
Listing 2 . A tuple with only one element. |
---|
print("Create and print one-element tuple")
# Note the req trailing commat2 = "a",
print(t2)print("Length of one-element tuple is:")
print(len(t2)) |
The syntax for creating a tuple with only one element is rather ugly, but is required to avoid ambiguity. In particular, it is necessary to follow the singletuple item with a comma as shown in the third line of text in Listing 2 .
Had I written that line simply as follows without the extra comma,
t2 = "a"
the result would have been to create a new variable named t2 whose contents would be the string "a". (The parentheses are optional here but the comma is required with or without the parentheses.)
This would not indicate a tuple at all. The extra comma is required to make a single-item tuple unique and to distinguish it from other possibilities.
Figure 2 shows the output produced by the code in Listing 2 . The single-item tuple is shown in the third line of text in Listing 2 . As is always the case, the tuple is displayed in parentheses.
Figure 2 . Output from the code in Listing 2. |
---|
Create and print one-element tuple
('a',)Length of one-element tuple is:
1 |
The length of the tuple as shown in Figure 2 is one (1) item.
Just to give you a little more practice in dealing with nested tuples, the code in Listing 3 nests the two tuples created above into a new tuple and stores a reference to the new tuple in the variable named t3 .
Listing 3 . Create and print nested tuples. |
---|
print("Create and print nested tuple")
t3 = "A",t1,"B",(t2,"Z"),"C"
print(t3)print("Length of nested tuple is")
print(len(t3)) |
However unlike previous sample programs, in this case, literal parentheses are used to cause the tuple named t2 to be doubly nested.
In particular, as shown by the second statement in Listing 3 , the tuple named t2 and the string "Z" are used to create a tuple, which in turn, is nested in the tuple assigned to the variable named t3 . This is also shown in the visualization in Figure 5 .
The double nesting is evidenced by the extra parentheses in the second line of text in the output shown in Figure 3 .
Figure 3 . Output from the code in Listing 3. |
---|
Create and print nested tuple
('A', (), 'B', (('a',), 'Z'), 'C')Length of nested tuple is
5 |
The length of the tuple is also shown in Figure 3 . Even though the tuple named t3 contains two nested tuples (one of which is doubly-nested) , its overall length is only five (5) items.
One of the tuples nested inside of t3 has a length of zero but it still counts as one item when the length of t3 is determined.
A complete listing of the program is shown in Listing 4 .
Listing 4 . Complete program listing. |
---|
# Illustrates empty tuples and tuples with only one element
#----------------------------------------------------------print("Create and print empty tuple")
t1 = ()print(t1)
print("Length of empty tuple is")print(len(t1))
print("Create and print one-element tuple")# Note the req trailing comma
t2 = "a",print(t2)
print("Length of one-element tuple is:")print(len(t2))
print("Create and print nested tuple")t3 = "A",t1,"B",(t2,"Z"),"C"
print(t3)print("Length of nested tuple is")
print(len(t3)) |
A consolidated output from the program is shown in Figure 4 .
Figure 4 . Consolidated output from the program in Listing 4. |
---|
Create and print empty tuple
()Length of empty tuple is
0Create and print one-element tuple
('a',)Length of one-element tuple is:
1Create and print nested tuple
('A', (), 'B', (('a',), 'Z'), 'C')Length of nested tuple is
5 |
A visualization of the tuples in the program is provided in Figure 5 .
Figure 5. Visualization of the tuples.
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.
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?