aggregate
- A collection is a container data type; Take {} as the flag of the container, and multiple elements are separated by commas: {element 1, element 2...} the set is variable and unordered
Element: immutable and unique
Empty set: x = {} is a dictionary
y = set() is an empty set
The collection has its own de duplication function
set3 = {1, 2, 3, 1, 2, 2, 4} print(set3) # {1, 2, 3, 4} names = ['Zhang San', 'Li Si', 'tom', 'Zhang San'] names = set(names) print(names)
The collection is out of order
print({1, 2} == {2, 1}) # True
-
Addition, deletion, modification and query of set
-
Search traversal
print("=====") set4 = {10, 20, 70, 90} for x in set4: print(x)
-
increase
set4 = {10, 20, 70, 90} # Assemble Add (element) - adds an element to the collection set4.add(100) print(set4) # {100, 70, 10, 20, 90} # b. Assemble Update - adds all the elements in the sequence to the collection set4.update('abc') print(set4) # {100, 70, 'c', 10, 'a', 'b', 20, 90}
-
Delete
# Assemble Remove (element) - deletes the specified element. If the element does not exist, an error will be reported set4 = {10, 20, 70, 90} set4.remove(70) print(set4) # {10, 20, 30} # Assemble Discard (element) - delete the specified element (no error will be reported if the element does not exist) set4 = {10, 20, 70, 90} # set4.discard(200) set4.discard(20) print(set4)
-
Change - cannot modify element
-
-
Mathematical set operation: python set supports mathematical set operation: subset (>, <, < =, > =), Union (|), intersection (&), difference (-), symmetric difference (^)
-
subset
print({200, 300, 600} > {1, 2}) # False (not compare size) # a. Set 1 > Set 2 - determines whether set 2 is a true subset of set 1 print({10, 20, 30} > {10, 20}) # True print({10, 20} > {10, 20}) # False # b. Set 1 > = set 2 - determines whether set 2 is a subset of set 1 print({10, 20, 30} >= {10, 20}) # True print({10, 20} >= {10, 20}) # True
-
Union
set1 = {1, 2, 3, 4, 5, 6} set2 = {4, 5, 6, 7, 8} print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
-
intersection
set1 = {1, 2, 3, 4, 5, 6} set2 = {4, 5, 6, 7, 8} print(set1 & set2) # {4, 5, 6}
-
Difference set
print(set1 - set2) # {1, 2, 3} print(set2 - set1) # {8, 7}
-
Symmetric difference set
print(set1 ^ set2) # {1, 2, 3, 7, 8}
-
Strings and characters
- String is a container data type; Take 'or' 'or' 'as the container flag, which has multiple characters
Immutable (addition, deletion and modification are not supported); Orderly (subscript operation is supported)
Element of string: each basic unit and character of string (any symbol can be used)
# character string str1 = 'abc' str2 = "abc123" str3 = '''abc123''' str4 = """abc123""" # The string led by '' '' and '' '' can be typed directly to wrap the line str5 = ''' hello 123 jdsk '''
-
character
python has no character corresponding type, only the concept of character
1) Ordinary characters: include all symbols, such as numbers, letters, Chinese and special symbols
2) Escape character: a character with special functions after being combined with \ is an escape character
-
\n - line feed
-
\t - a horizontal tab
-
\'- a single quotation mark
-
\"- a double quotation mark
-
\- a backslash character
Note: the length of any escape character is 1
# Ordinary character str1 = '123' str2 = 'ahsj' str3 = '#›@@*' # Escape character str1 = '21\nabc' print(str1) str2 = '12\'k' print(str2) str5 = '\t123abc' print(str5) str6 = '123\u4effsd' print(str6)
-
Prevent escape
Adding r/R to the front of the character in python can make the function of all escape characters in this string disappear
str7 = '\tabc\n123\\aaa' print(str7) str8 = R'\tabc\n123\\aaa' print(str8, len(str8)) # \tabc\n123\\aaa 15
Computer character storage
When a computer stores data, it can only directly store digital data in binary form
-
Character encoding
In order to enable the computer to store characters, we associate each character with a specific number, and store the number corresponding to the character when it is necessary to store characters; The number corresponding to each character is the coded value of the character.
-
Coding table
The table that saves the one-to-one correspondence between characters and numbers is the character coding table. The common character coding tables are ASCII and Unicode coding tables
- ASCII: one byte is used to encode 128 characters, including common English symbols, numbers and letters. Other numbers are coded in front of letters, uppercase letters are coded in front of lowercase letters, and uppercase and lowercase letters are discontinuous
- Unicode code table: it is called universal code. The first 128 characters are ASCII characters. Chinese code range: 4e00 ~ 9fa5
-
Coded characters: \ u four digit hexadecimal number (four digit hexadecimal number is the coded value of letters)
str1 = 'a\u0061' print(str1) str2 = '\u4e00\u4e01\u4e05' print(str2)
-
chr function
# Chr (coded value) - get the character corresponding to the coded value print(chr(97)) # a # Exercise: print all Chinese characters for i in range(0x4e00, 0x4e05): print(chr(i))
-
ord function
# Ord (character) - gets the encoded value of the character print(ord('Herding'), ord('odd')) print(hex(ord('Herding')), hex(ord('odd')))
-
String related operations
1. Get string
String gets characters in the same way as list gets elements
1) Get single character
str1 = 'Life is short, I use it python!' print(str1[5]) str2 = 'how are\n you!' print(str2[-4],str2[9]) # y y
2) Slice
message = 'Once there was a sincere love in front of me, which I didn't cherish...' print(message[1:]) # After having a sincere love in front of me, I didn't cherish it print(message[2:10:3]) # Have true love print(message[-10: -2: -1]) # ''
3) Traversal
message2 = 'You think I think that's what you think' for x in message2: print(x) message3 = 'you jump, i jump!' for x, y in enumerate(message3): print(x, y) # Exercise 1: print the coded value of each character in message3 print("===Exercise 1===") for x in message3: print(ord(x)) # Exercise 2: count the number of Chinese characters in message4 print("===Exercise 2===") message4 = 'how are you? I'm fine! what about you?' count = 0 for x in message4: if 0x4e00 <= ord(x) <= 0x9fa5: count += 1 print(count)
-
Addition and multiplication
String 1 + string 2 - combines two strings to produce a new string
str1 = 'abc' + '123' print(str1)
String * N / N * string - produces n identical strings
str2 = 'abc' * 3 print(str2) # abcabcabc
3. Comparison operation: >, < > =<=
The two strings compare the size of the encoded value of the first pair of unequal characters
Judge whether a character is lowercase: 'a' < = x '< =' z '
Judge whether A character is A capital letter: 'A' < = x < = 'Z'
Judge whether a character is a letter: 'a' < = x < = 'Z' or 'a' < = x < = 'Z'
Judge whether a character is a numeric character: '0' < = x < = '9'
Judge whether a character is Chinese: '\ u4e00' < = x < = '\ u9fa5'
print('abc' > 'ABC123') # True print('You 123' > 'a123') # True # Exercise 3: extract all lowercase letters from the string print('===Exercise 3===') str3 = 'ho3w2a however ndHwMPhy key' new_str = '' for i in str3: if 'a' <= i <= 'z': new_str += i print(new_str) # Exercise 4: convert all lowercase letters in a string to uppercase letters print('===Exercise 4===') new_str = '' for i in str3: if 'a' <= i <= 'z': new_str += chr(ord(i) - 32) else: new_str += i print(new_str)
-
In and not in
character in character string - Determines whether there are specified characters in the string String 1 in String 2 - Judge whether string 2 contains string 1 print('a' in 'abc') # True print('how' in 'how are you!') # True print('how' in 'habco12w') # False