This article mainly introduces the derivation of Python in the use of detailed, this article explains the list of derivation, dictionary derivation, set of the use of the derivation of examples, the need for friends can refer to the
The derivation is a powerful and popular feature in Python, with the advantages of simplicity, speed and so on. The derivation consists of:
1. List derivation type
2. Dictionary derivation type
3. Set Derivation type
Nested list derivation
Note: Dictionaries and collection derivations have only recently been added to Python (Python 2.7 and Python 3.1 versions). The following is a brief introduction:
"List-derived"
List derivation can be very concise to construct a new list: Only a concise expression can be used to transform the resulting elements of the transformation
The basic format is as follows:
The code is as follows:
[Expr for value in collection Ifcondition]
Filter conditions are optional, depending on the actual application, leaving only the expression, the equivalent of the following for loop:
The code is as follows:
result = []
For value in collection:
If condition:
Result.append (expression)
Example 1: Filter out the list of strings with a length of less than 3 and convert the rest to uppercase
The code is as follows:
>>> names = [' Bob ', ' Tom ', ' Alice ', ' Jerry ', ' Wendy ', ' Smith ']
>>> [Name.upper () for name in names if Len (name) >3]
[' ALICE ', ' JERRY ', ' WENDY ', ' SMITH ']
Example 2: (X,y) where x is an even number between 0-5, and y is an odd-numbered Ganso list between 0-5
The code is as follows:
>>> [(X,y) for x in range (5) if x%2==0 to Y in range (5) if y%2==1]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
Example 3: A list of 3,6,9 in M
The code is as follows:
>>> M = [[1,2,3],
... [4,5,6],
... [7,8,9]]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [row[2] for row in M]
[3, 6, 9]
#或者用下面的方式
>>> [m[row][2] for row in (0,1,2)]
[3, 6, 9]
Example 4: Find a list of 1,5,9 in M-slash
The code is as follows:
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> [M[i][i] for I in range (len (M))]
[1, 5, 9]
Example 5: Finding the product of matrices and elements in M,n
The code is as follows:
>>> M = [[1,2,3],
... [4,5,6],
... [7,8,9]]
>>> N = [[2,2,2],
... [3,3,3],
... [4,4,4]]
>>> [M[row][col]*n[row][col] for row in range (3) for Col in Range (3)]
[2, 4, 6, 12, 15, 18, 28, 32, 36]
>>> [[M[row][col]*n[row][col] for Col in Range (3)] for row in range (3)]
[[2, 4, 6], [12, 15, 18], [28, 32, 36]]
>>> [[M[row][col]*n[row][col] for row in range (3)] for Col in Range (3)]
[[2, 12, 28], [4, 15, 32], [6, 18, 36]]
Example 5: The age key in the dictionary, assigning a new value according to the condition
The code is as follows:
>>> Bob
{' Pay ': 3000, ' job ': ' Dev ', ' age ': ' Name ': ' Bob Smith '}
>>> Sue
{' Pay ': 4000, ' job ': ' HDW ', ' age ': ' Name ': ' Sue Jones '}
>>> people = [Bob, Sue]
>>> [rec[' age ']+100 if rec[' age '] >= (Else rec[' age ') for Rec in people] # Note for location
[42, 145]
"Dictionary derivation"
The dictionary and set derivation are the continuation of the idea, the grammar is similar, but only produces the collection and the dictionary. The basic format is as follows:
The code is as follows:
{key_expr:value_expr for value in collection if condition}
Example 1: Using dictionary derivation to build a dictionary with a string and its length
The code is as follows:
>>> strings = [' Import ', ' is ', ' with ', ' if ', ' file ', ' exception ']
>>> D = {Key:val for Val,key in Enumerate (strings)}
>>> D
{' Exception ': 5, ' is ': 1, ' file ': 4, ' import ': 0, ' with ': 2, ' If ': 3}
"Set-derived"
Collection derivations are very similar to list derivations, except that {} is substituted for []. The basic format is as follows:
The code is as follows:
{Expr for value in collection if condition}
Example 1: Deriving a set of string lengths with a set
The code is as follows:
>>> strings = [' A ', ' is ', ' with ', ' if ', ' file ', ' exception ']
>>> {len (s) for s in Strings} #有长度相同的会只留一个, which is also very useful in practice
Set ([1, 2, 4, 9])
"Nested list derivation"
A nested list refers to a list of nested lists, such as:
The code is as follows:
>>> L = [[1,2,3],
[4,5,6],
[7,8,9]]
Example 1: A nested list of men's and women's lists, taking out names with more than two letters E, composing lists
The code is as follows:
names = [[' Tom ', ' Billy ', ' Jefferson ', ' Andrew ', ' Wesley ', ' Steven ', ' Joe '],
[' Alice ', ' Jill ', ' Ana ', ' Wendy ', ' Jennifer ', ' Sherry ', ' Eva ']]
Implemented with A For loop:
The code is as follows:
TMP = []
For LST in Names:
For name in LST:
If Name.count (' E ') >= 2:
Tmp.append (name)
Print tmp
#输出结果
>>>
[' Jefferson ', ' Wesley ', ' Steven ', ' Jennifer ']
To implement with a nested list:
The code is as follows:
>>> names = [[' Tom ', ' Billy ', ' Jefferson ', ' Andrew ', ' Wesley ', ' Steven ', ' Joe '],
[' Alice ', ' Jill ', ' Ana ', ' Wendy ', ' Jennifer ', ' Sherry ', ' Eva ']]
>>> [name for LST in names for name in LST if Name.count (' E ') >=2] #注意遍历顺序, which is the key to implementation
[' Jefferson ', ' Wesley ', ' Steven ', ' Jennifer ']