python 使用循环生成list

#-*- coding:UTF-8 -*-

squares=[]
for  x  in range(10):
    squares.append(x**2)

print  squares
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
#等价于
squares=[x**2 for  x  in range(10)]
print  squares
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

combs=[]
for  x  in  [1,2,3]:
     for  y  in [3,1,4]:
          if x!=y:
            combs.append((x,y))
print  combs
#等价于:
combs=[(x,y) for  x in [1,2,3] for  y  in [3,1,4] if x!=y]
print combs
#[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

vec=[-4,-2,0,2,4]
print [x*2 for  x in vec]
#[-8, -4, 0, 4, 8]

print 30*‘*‘,‘print  [x for  x  in vec if  x>=0]‘,30*‘*‘
print  [x for  x  in vec if  x>=0]
#[0, 2, 4]

print [abs(x) for x  in vec]
#[4, 2, 0, 2, 4]

freshfruit=[‘  banana‘,‘ apple  ‘,‘loganberry ‘,‘passion  fruit ‘]
#strip() 去除字符串首尾空格
print [weapon.strip() for weapon  in  freshfruit]
#[‘banana‘, ‘apple‘, ‘loganberry‘, ‘passion  fruit‘]

print  30*‘*‘,"[(x,x**2) for  x  in  range(6)]",30*‘*‘
print [(x,x**2) for  x  in  range(6)]
#[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

vec=[[1,2,3],[4,5,6],[7,8,9]]
print [num for elem  in vec  for  num  in  elem]
#[1, 2, 3, 4, 5, 6, 7, 8, 9]

matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
#list中的每个元素都是list,将list中的每个list元素中的元素按照索引组合成一个新的list
print [[row[i] for  row in matrix] for  i in range(4)]
#[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

transposed=[]
for  i in range(4):
    transposed.append([row[i] for  row  in  matrix])

print   transposed
#[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

#等价于:
transposed=[]
for  i  in range(4):
    transposed_row=[]
    for  row  in  matrix:
        transposed_row.append(row[i])
    transposed.append(transposed_row)
print   transposed

#等价于zip(*matrix)
print  zip(*matrix)
#[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

此外,map()也可以返回list,map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
#lambda表示匿名函数,冒号前面的x表示函数参数,冒号后面是表达式,匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果

squares=map(lambda x:x**2,range(10))
print   squares

#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
时间: 2024-10-09 09:31:15

python 使用循环生成list的相关文章

Python列表的生成 转载http://www.imooc.com/learn/177

要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list: >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 这种写法就是Python特有的列表生成

python之循环

循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直接写表达式就不可能了. 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句. Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for name in names: prin

Python条件循环

if语句: if elif else: Python中if语句的一半表现形式: 1 if p_1: 2 print('is 1') 3 elif p_2: 4 print('is 2') 5 else: 6 print('is 3') 如果条件满足p_1将会输出is 1,如果条件不满足p_1满足p_2的话将会输出is 2,如果以上两个条件都不满足的话将会执行第三个结果is 3,所以if的关键语句为:if  elif  else. 注意: 每个条件后面都要使用冒号:,表示接下来满足条件后要执行的语

Python学习-7.Python的循环语句-for语句

Python中循环可以使用for语句来实现 1 list = ['Tom','Lucy','Mary'] 2 for name in list: 3 print(name) 则将会依次输出Tom Lucy Mary 另外Python还支持continue和break关键字,用法与C#相同. 比较有特点的是Python的for语句中支持else关键字 例子: 1 max = 15 2 for i in range(10): 3 if(i==max): 4 break 5 print(i) 6 el

python脚本批量生成数据

在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用.思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可. 假如有个联系人的学生表student,其表结构为姓名name.学校school.电话telphone.邮箱email. 以Mysq为例子,sql语句

python 6 循环

循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直接写表达式就不可能了. 为了让计算机能计算成千上万次的重复运算,我们就需要循环语句. Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for name in names: prin

Python的循环语句

Python的循环有两种,一种是for...in循环,第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环 names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name) Michael Bob Tracy #所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句 sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum

python读取和生成excel文件

今天来看一下如何使用python处理excel文件,处理excel文件是在工作中经常用到的,python为我们考虑到了这一点,python中本身就自带csv模块. 1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx  直接重命名为csv的话会报错: Error: line contains NULL byte insun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了 譬

Python for 循环

Python for 和其他语言一样,也可以用来循环遍历对象,本文章向大家介绍Python for 循环的使用方法和实例,需要的朋友可与参考一下. 一个循环是一个结构,导致第一个程序要重复一定次数.重复不断循环的条件仍是如此.当条件变为假,循环结束和程序的控制传递给后面的语句循环. for循环: 在Python for循环遍历序列的任何物品,如一个列表或一个字符串,有能力. for循环语法是: for iterating_var in sequence: statements(s) 如果一个序列