Home > Backend Development > Python Tutorial > python list parsing

python list parsing

巴扎黑
Release: 2017-06-27 09:09:41
Original
1950 people have browsed it

List parsing, mainly used to dynamically create lists

This article mainly talks about the usage of lambda, map(), and filter() combined with list parsing statements

List The basic syntax of parsing is: [expr for iter_var in iterable]

The core of this statement is the for loop, which iterates all entries of the iterable object. The preceding expr is applied to each member of the sequence, and the final result value is the list produced by the expression.

1. Basic usage

Let’s take an example

Test it in idle:

>>> [i for i in range(0,8)]

[0,1,2,3,4,5,6,7]

where i is expr in basic syntax It is also iter_val; in another way, we perform an operation on the value inside and multiply all members by 2

>>> [i*2 for i in range(0,8)]

[0, 2, 4, 6, 8, 10, 12, 14]

This is a list parsing written completely in accordance with the basic syntax

2. Add judgment conditions after the recycle statement

Extended version syntax: [expr for iter_val in iterable if cond_expr]

We can also expand and add some statements after it , filter the list; for example, we only need the number in this value that is divisible by 2

>>> [i for i in range(1,8) if i%2 == 0]
[2, 4, 6]

This kind of statement is similar to using filter, so we can also use python’s built-in filter function to achieve the same value

>> ;> l = filter(lambda x:x%2==0, range(1,8))
>>> for i in l:
i


2
4
6

But I found no, there are some differences, because I did not print out the list directly. why? Because the return value of filter is a generator, the generator cannot know all the values. It can only get the next value through iteration

3. Map is used to achieve the same results as list parsing

>>> map(lambda x: x*2, range(1,8))

[2, 4, 6, 8, 10, 12, 14]

Using it can get the same effect as [x * 2 for x in range(1,8)], but use the latter More efficient than map()

4. Generate matrix

When you need to get a matrix with 3 rows and 5 columns, it is very simple:

>>> [(x,y) for x in range(0,3) for y in range(0,5)]

[(0, 0), (0, 1), ( 0, 2), (0, 3), (0, 4),


(1, 0), (1, 1), (1, 2), (1, 3), (1, 4),

(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]

You can also find more information on reference list parsing in PEP 202

The above is the detailed content of python list parsing. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template