Python Learning from topics: List comprehension

Source: Internet
Author: User

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

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.