1. Tuple
- A tuple is an immutable sequence
- The symbol is ()
() can be omitted, but when there are other elements in the tuple, there must be = = ','== - tuple1 = () empty tuple
- Tuples can also store everything
tuple1 = (1, None, False, [])
Unpacking of tuples
Here is an example to illustrate:
# Unpacking tuple1 = (1, 2, 3) a, b, c = tuple1 print(a, b, c)
Calculated:
# special case tuple1 = (1, 2, 3, 4) a, b, c = tuple1 print(a, b, c)
An error will be reported here because there are too many values in tuple1 that need to be unpacked.
For this problem, the concept of '* -- wildcard' is introduced
’*'is a wildcard symbol, which can represent all. In addition, it will be converted to list form.
# Examples of wildcard use tuple1 = (1, 2, 3, 4) a, b, *c = tuple1 print(a, b, c)
Obtained by operation
Supplementary notes
Unpacking of strings and lists is similar to unpacking of tuples.
2. Dictionary
- The data structure is mapping, that is, query.
- Mapping - one-to-one correspondence.
- The expression key value is called a key value pair or an item.
- Dictionary type dict
- Represents the symbol {}
- dict1 = {} is an empty dictionary.
- Dictionary has no index
# give an example # Normal use dict1 = {'name': 'David', 'Skill': 'Python', 'Age': '27', 'Gender': 'Male'} # dict() dict2 = dict(name='David', Skill='Python', Age='27', Gender='Male') # Binary sequence dict3 = dict([('name', 'David'), ('Skill', 'Python'), ('Age', '27'), ('Gender', 'Male')]) print('\n', dict1, '\n', dict2, '\n', dict3)
Run get
2.1 addition, deletion, modification and query of dictionary
command | meaning |
---|---|
len() | Length display |
dict.get() | Value |
dict[] | Value |
dict[]= | replace |
dict.update() | Dictionary addition |
del dict[] | Specify delete |
dict.popitem() | Delete last item by default |
dict.pop() | Specify delete |
For example, precautions:
dict1 = {'name': 'David', 'Skill': 'Python', 'Age': '27', 'Gender': 'Male'} print(len(dict1)) # Length display, statistics by item print(dict1.get('name'),dict1['name']) # Two Key based methods print(dict1.get('sex')) # No error is reported and no sex item is displayed # print(dict1['sex']) # An error is reported because there is no sex item in the dictionary # Dictionary modification (replacement, addition) dict1['Age'] = 18 # If there is a current Key, replace it dict1['Hobby'] = 'hiking' # No current Key, add new item print(dict1) dict2 = {'1' : 1, '2' : 2, '3' : 3} dict1.update(dict2) # Add other dictionaries print(dict1) del dict1['Age'] # Specified Key deletion dict1.popitem() # Delete the last item by default print(dict1) print(dict1.pop('name')) # Specifies to delete. If there is a Key, the corresponding Value will be returned print(dict1.pop('4', 4)) # Specifies to delete. If there is no Key, the specified Value 4 is returned
Obtained by operation
2.2 deep copy and light copy
- copy.copy() shallow copy -- does not copy the second level data -- that is, nested data types
import copy dict1 = {'name':123, 'date':[1, 2, 3]} dict2 = copy.copy(dict1)
- copy. Deep copy -- copy all data
Summary:
- Shallow copy only creates surface data, so the internal data id is the same; The deep copy is completely recreated, and the internal id has also changed.
- Immutable data type - value changes, id changes; Value remains unchanged and id remains unchanged.
Variable data types - IDs are always different.
2.3 traversal dictionary
- Key traversal expression: keys()
Statement: for k in dict.keys(): - Value traversal expression: values()
Statement: for v in dict.values(): - Item traversal expression: items()
Statement: for k,v in dict.items():
3 set
The overall features are similar to the list, so this content focuses on the comparison of different points
- Only immutable data objects can be stored
- Storage objects are unordered -- indexes are not supported
- No repetition - de duplication
- set type: set
- Symbol: {}
- Empty set establishment: set1 = set()
3.1 collective use
command | meaning |
---|---|
in | Include in collection |
not in | Is it not included in the collection |
set.add() | Add element |
set.update() | Add new collection |
set.pop() | Delete the first data from by default |
set.remove() | Specify element deletion |
set.clear() | Empty collection |
3.2 set operation
Symbol | meaning |
---|---|
& | intersection |
| | Union |
- | Difference set |
^ | Or set |
<= | Is it a subset |
< | Is it a true subset |
>= | Is it a superset |
> | Is it a true superset |
After class practice
# Q1 a = {'name':'123', 'data':{'result':[{'src':'python1'}, {'src':'python2'},{'src':'python3'}]}} b = a.get('data') print(b) c = b.get('result') print(c) print(c[0].get('src'), c[1].get('src'), c[2].get('src')) # Q2 a = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] Key1 = [] Key2 = [] for b in a: if b > 66: Key1.append(b) elif b < 66: Key2.append(b) else: continue set1 = {'Greater than 66':Key1, 'Less than 66':Key2} print(set1)
obtain: