1 / 11

Tuples

Tuples. CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington. Tuples. Creation: Like lists, but with parenthesis instead of brackets Without parenthesis: the comma is what generates the tuple. From a list Tuples vs lists

shadi
Télécharger la présentation

Tuples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tuples CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington

  2. Tuples • Creation: • Like lists, but with parenthesis instead of brackets • Without parenthesis: the comma is what generates the tuple. • From a list • Tuples vs lists • How can you tell them apart: • () vs [] • See their type: type(my_list), type(my_tuple)

  3. Tuples are immutable • You can not change the value of an element in a tuple • Supported methods: element access methods • Supported functions • Try: sorted • Objects vsreferences (behavior of copies): • my_tuple= ([40, 10], 20, [80, 70]) • my_tuple[1] = 5 • Lists inside tuples • my_tuple = ([40, 10], 20, [80, 70]) • my_tuple[0][1] = 5 • Tuples inside lists • my_list= [(40, 10), 20, (80, 70)) • Tuples inside tuples • ((40, 10), 20, (80, 70))

  4. Lists vs. Tuples Tuples are basically lists. One important difference: you cannot change the contents of a tuple. >>> a = [1, 2, 3] >>> a[0] = 100 >>> a [100, 2, 3] >>> b = (1, 2, 3) >>> b[0] = 100 error message…

  5. Lists vs. Tuples Any operation that you can do on lists, and that does NOT change contents, you can do on tuples. Examples: Indexing, e.g., b[0] Slicing, e.g., b[1:3] Taking the length, e.g., as len(b) Printing, e.g., print(b) Operations that change contents of lists, produce errors on tuples. Examples: list methods pop, insert, reverse, sort, append >>> a = [1, 2, 3] >>> a[0] = 100 >>> a [100, 2, 3] >>> b = (1, 2, 3) >>> b[0] 1 >>> b[1:3] (2, 3) >>> len(b) 3 >>> print(b) (1, 2, 3)

  6. Lists vs. Tuples Creating a tuple can be done easily, just use parentheses around the elements, instead of brackets. See red lines on the left. When you print a tuple, you also see parentheses instead of brackets. Be aware that it is the comma, and not the parenthesis what generates the tuple. Here we use coma, and no parenthesis: >>> my_tuple = 1,2,3 >>> my_tuple (1, 2, 3) It’s a better programming style to use the parenthesis even if you don’t have to. >>> a = [1, 2, 3] >>> a[0] = 100 >>> a [100, 2, 3] >>> b = (1, 2, 3) >>> b[0] 1 >>> b[1:3] (2, 3) >>> len(b) 3 >>> print(b) (1, 2, 3)

  7. Lists vs. Tuples You can easily copy lists into tuples, and tuples into lists, as shown on the left. >>> a = [1, 2, 3] >>> b = tuple(a) >>> b (1, 2, 3) >>> b = (1, 2, 3) >>> a = list(b) >>> a [1, 2, 3]

  8. Lists vs. Tuples Lists are of type 'list', and tuples are of type 'tuple' >>> a = [1, 2, 3] >>> b = tuple(a) >>> b (1, 2, 3) >>> type(a) <type 'list'> >>> type(b) <type 'tuple'>

  9. Protection Against Shallow Copies tuple1 contains a list, an integer, and a second list. tuple2 is a shallow copy of tuple1. Trying to replace the value at position 2 does not work (tuples cannot be modified). However, modifying tuple2[0][1] also modifies tuple1. This problem is caused by having a list as element of the tuple. >>> tuple1 = ([40, 10], 20, [80, 70]) >>> tuple2 = tuple1 >>> tuple1[2] = 1000 <error message> >>> tuple2[0][1] = 77 >>> tuple1 ([40, 77], 20, [80, 70])

  10. Protection Against Shallow Copies tuple1 contains a tuple, an integer, and a second tuple. tuple2 is a shallow copy of tuple1. Trying to replace the value at position 2 does not work (tuples cannot be modified). Modifying tuple2[0][1] also doesn't work. Thus, we avoid the problem of inadvertently modifying multiple variables. >>> tuple1 = ((40, 10), 20, (80, 70)) >>> tuple2 = tuple1 >>> tuple1[2] = 1000 <error message> >>> tuple2[0][1] = 77 <error message>

  11. Do We Care About Tuples? • Be aware that they exist. • Know what they are if you see them in other people's code. • Use them if you find it beneficial. • Use them if you want to ensure that modifying one variable will NOT affect any other variable. • Use them when you need an immutable collection of objects (for example as keys in a dictionary – we will see that later on).

More Related