99 multiplication Table Job in fact, there is a simpler way, is to use a list deduction formula.
-----------------------------------------------------------------------------
Print below multiplication table:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81--------------------------------------------------------------------------------------------
1. List-derived writing form:
[Expression for variable in list] or [expression for variable in list if condition]
2. Introduction:
A list deduction is a way to create a new list with another list, which works like a For loop.
A simple understanding is that a list can be generated directly from a for loop.
3. For example:
List = [1,2,3,4,5,6,7,8,9]#to print the squares of all the elements in the listPrint[X**2 forXinchList]#[1, 4, 9, +, (+), +, +, Bayi]#The square of the element in the printed list that is greater than 5 (only need to add an if statement)Print[X**2 forXinchListifX>5] #[approx ., +, +, Bayi]#Prints the Ganso of all elements and elements *10 the listPrint[(X,X*10) forXinchList]#[(1, Ten), (2, +), (3, +), (4, +), (5, +), (6,), (7,), (8), (9)]#You can also add multiple for loopsPrint[(x, Y) forXinchRange (3) forYinchRange (3) [(0, 0), (0,1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2))]
Print[[X, Y] forXinchRange (3) forYinchRange (3)][[0, 0], [0,1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]#of course, adding multiple if loops can also[(x, Y) forXinchRange (10)ifX% 2ifX > 3 forYinchRange (10)ifY > 7ifY! = 8]#[(5, 9), (7, 9), (9, 9)]
List1 = [2,4,6= [3,6,9][list1[i] for in range (len (list1))]# [One, one, a.]
4. Topic Procedure:
>>>Print "\ n". Join ([" ". Join (["%d*%d=%d"% (Secondnum,firstnum,firstnum*secondnum) forSecondnuminchRange (1,firstnum+1)]) forFirstnuminchRange (1,10)])#1*1=1#1*2=2 2*2=4#1*3=3 2*3=6 3*3=9#1*4=4 2*4=8 3*4=12 4*4=16#1*5=5 2*5=10 3*5=15 4*5=20 5*5=25#1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36#1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49#1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64#1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
If you want to know something about the principle of list comprehension, this person's article is very clear: http://blog.chinaunix.net/uid-28631822-id-3488324.html
5. Practice:
Here is a topic from the Basic Python tutorial:
>>> girls = ['Alice','Bernice','Clarice']>>> Boys = ['Chris','Arnold','Bob']>>> [B +'+'+g forBinchBoys forGinchGirlsifb[0]==G[0]] ['Chris+clarice','Arnold+alice','Bob+bernice']#of course, it's also possible, mind not spinning.>>> [(B,G) forBinchBoys forGinchGirlsifb[0]==G[0]] [('Chris','Clarice'), ('Arnold','Alice'), ('Bob','Bernice')]
The book also offers a more optimal solution:
>>> forGirlinchGirls:letterGirls.setdefault (girl[0],[]). Append (Girl)>>> [B +'+'+g forBinchBoys forGinchLettergirls[b[0] ]#[' Chris+clarice ', ' chris+clarice ', ' arnold+alice ', ' arnold+alice ', ' bob+bernice ', ' bob+bernice ']#explain:#Lettergirls.setdefault (girl[0],[])>>>PrintLettergirls#{' A ': [], ' C ': [], ' B ': []}#Lettergirls.setdefault (girl[0],[]). Append (Girl)>>>lettergirls{'a': ['Alice'],'C': ['Clarice'],'b': ['Bernice']}#for Loop Traversal dictionary, get the key value#SetDefault (Key,value), if no value is updated, the value is not updated.
Python Learning from topics: List comprehension