List related operations
1. Mathematical operation of list: +*
1) List 1 + list 2 - merge two lists to produce a new list (List 1 and list 2 will not be modified)
list1 = [10, 20, 30] list2 = [100, 200] result = list1 + list2 print(result) # [10, 20, 30, 100, 200] # print(list1) # [10, 20, 30]
2) List * N / N * list - the list repeats n times to produce a new list
result = list1 * 3 # list1 + list1 + list1 print(result) # [10, 20, 30, 10, 20, 30, 10, 20, 30]
2. List comparison operation: = =,! =, >, <, > =<=
1) Compare equal
print([1, 2, 3] == [2, 3, 1]) # False print([10, 20, 30] == [10, 20, 30]) # True
2) Compare size: >, <, > =<=
The two lists compare the size. The size of the first pair of unequal elements is compared (the elements in the same position are a pair of children)
print([10, 20, 30, 40, 50] > [10, 30]) # False print([100, 200, 1, 1000, 10000] > [100, 200, 2, -100]) # False print([100, 200, 3] > [100, 200]) # True
3. in and not in
Element in list - determines whether the specified element exists in the list
Element not in list - determines whether the specified element does not exist in the list
students = ['Zhang San', 'Li Si', 'floret'] print('Xiao Ming' in students) # False print('Zhang San' in students) # True
Exercise 1: there is a list with a length of 10. There are 10 names in the array. It is required to remove the duplicate names
names = ['Zhang San', 'Li Si', 'chinese rhubarb', 'chinese rhubarb', 'Zhang San', 'Zhang San', 'Zhang San'] new_names = [] for name in names: if name not in new_names: new_names.append(name) print(new_names) # ['Zhang San', 'Li Si', 'rhubarb']
Exercise 2: there are two lists A and B. use list C to get the common elements in the two lists
A = [1, 'a', 4, 90, 'a'] B = ['a', 8, 'j', 1] C = [] for x in A: if x in B and x not in C: C.append(x) print(C)
Logic of in operation
item = 10 nums = [20, 34, 9, 10] for x in nums: if x == item: print(True) break
List related functions and related methods
1. List related functions
1) max,min
max (sequence) - gets the maximum value of the element in the sequence
min (sequence) - gets the minimum value of the element in the sequence
Note: the element types in the sequence must be consistent; The element itself supports the operation of comparing sizes
nums = [23, 45, 78, 90, 12.9] print(max(nums)) print(min(nums))
2) Sum (number sequence) - find the sum of all elements in the number sequence
nums = [23, 45, 78, 90, 12.9] print(sum(nums)) print(sum(range(101)))
3) sorted
Sorted - sorts the elements in the sequence from small to large to produce a new list (the order of the elements in the original sequence is not modified)
Sorted (sequence, reverse=True) - sort the elements in the sequence from large to small to generate a new list (the order of the elements in the original sequence is not modified)
nums = [23, 45, 78, 90, 12.9] result = sorted(nums) print(result) # [12.9, 23, 45, 78, 90] result = sorted(nums, reverse=True) print(result) # [90, 78, 45, 23, 12.9]
4) Len (sequence) - get the length of the sequence (the number of elements in the sequence)
nums = [23, 45, 78, 90, 12.9] print(len(nums))
5) List - converts the specified data into a list
All sequences can be converted into lists, and the conversion is to convert the elements in the sequence into the elements of the list
result = list('abc') print(result) # ['a', 'b', 'c'] result = list(range(10, 15)) print(result) # [10, 11, 12, 13, 14]
2. List related methods: list. Method name ()
1) List. clear() - clear the list
nums = [23, 45, 78, 90, 12.9] nums.clear() print(nums) # []
2) list as like as two peas (.Copy) - copy the original list to produce a new list that is exactly the same.
List [:] = = list * 1 = = list + [] = = list. copy()
nums = [23, 45, 78, 90, 12.9] result1 = nums.copy() result2 = nums print(nums) # [23, 45, 78, 90, 12.9] print(result1) # [23, 45, 78, 90, 12.9] print(result2) # [23, 45, 78, 90, 12.9] nums.append(100) print(nums) # [23, 45, 78, 90, 12.9, 100] print(result1) # [23, 45, 78, 90, 12.9] print(result2) # [23, 45, 78, 90, 12.9, 100]
Exercise: delete all failed scores from the list
scores = [90, 45, 34, 89, 76, 23, 100, 23, 6, 59] # new_scores = scores.copy() for x in scores[:]: print('x:', x) if x < 60: scores.remove(x) print(scores) # [90, 34, 89, 76, 100, 6]
3. List. Count (element) - counts the number of specified elements in the list
nums = [10, 30, 98, 78, 10, 30, 20, 30] result = nums.count(10) print(result) print(nums.count(30)) print(nums.count(100))
4. List. Extend (sequence) - adds all the elements in the sequence to the list
nums = [10, 20, 30] nums.append('abc') print(nums) # [10, 20, 30, 'abc'] nums.extend('abc') print(nums) # [10, 20, 30, 'abc', 'a', 'b', 'c'] nums.append([100, 200]) print(nums) # [10, 20, 30, 'abc', 'a', 'b', 'c', [100, 200]] nums.extend([100, 200]) print(nums)
5. List. Index (element) - get the subscript value of the specified element in the list (subscript value starting from 0)
nums = [23, 45, 78, 45, 90, 12.9] print(nums.index(78)) # 2 # print(nums.index(100)) # report errors print(nums.index(45)) # 1
6. List. reverse() - reverse the list
nums = [23, 45, 78, 45, 90, 12.9] nums.reverse() print(nums) # [12.9, 90, 45, 78, 45, 23]
7. List. sort() - sort the elements in the list from small to large
List. sort(reverse=True) - sorts the elements in the list from large to small
nums = [23, 45, 78, 45, 90, 12.9] result = nums.sort() print(result) # None print(nums) # [12.9, 23, 45, 45, 78, 90] nums = [23, 45, 78, 45, 90, 12.9] result = sorted(nums) print(result) # [12.9, 23, 45, 45, 78, 90] print(nums) # [23, 45, 78, 45, 90, 12.9]
List derivation
1. List derivation - an expression that quickly creates a list
**1) * * structure 1 - uniformly transform the elements in the sequence to get a new list
[expression for variable in sequence]
result = [10 for x in range(4)] print(result) # [10, 10, 10, 10] result = [x*2 for x in range(4)] print(result) # [0, 2, 4, 6] nums = [56, 78, 92, 35, 50] result = [x % 10 for x in nums] print(result) # [6, 8, 2, 5, 0]
Exercise 1: using the list derivation, extract the ten digits of the elements in the list
nums = [56, 738, 92, 351, 50] # [5, 3, 9, 5, 5] result = [x // 10 % 10 for x in nums] print(result) # [5, 3, 9, 5, 5]
2) Structure II - screening and transformation
[expression for variable in sequence if conditional statement]
result = [x*2 for x in range(5) if x % 2] print(result) # [2, 6]
Exercise 1: extract all even numbers from nums using list derivation
# [34, 56, 12] nums = [19, 34, 56, 77, 9, 12] result = [x for x in nums if x % 2 == 0] print(result) # [34, 56, 12]
Exercise 2: extract all numbers in nums by using list derivation
# [12, 2.34, 9] nums = [12, 2.34, 'abc', 9, '009'] result = [x for x in nums if type(x) in [int, float]] print(result) # [12, 2.34, 9]
Exercise 3: use the list derivation to extract the single digits of all odd numbers in nums
# [9, 7, 1] nums = [19, 34, 56, 77, 91, 12] result = [x % 10 for x in nums if x % 2 == 1] print(result) # [9, 7, 1]
Exercise 4: use the derivation to divide all the even numbers in the list by 2, and the odd numbers remain the same
# [19, 17, 28, 77, 91, 6] nums = [19, 34, 56, 77, 91, 12] # x , x // 2 result = [x if x % 2 else x//2 for x in nums] print(result) # [19, 17, 28, 77, 91, 6]
Exercise 5: divide all the numbers in the list by 10. If they are not numbers, don't move
# [3.4, 0.345, 'abc', 8.9, '12', 0.9] list1 = [34, 3.45, 'abc', 89, '12', 9] # x / 10, x result = [x / 10 if type(x) in (int, float) else x for x in list1] print(result) # [3.4, 0.34500000000000003, 'abc', 8.9, '12', 0.9]