列表生成式,是Python内置的一种极其强大的生成list的表达式。
如果要生成一个列表,可以用range(1,10)
>>>range(1,4)
>>>[1,2,3]
生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎么做呢?可以使用循环:
- >>> L= []
- >>> for x in range(1 , 10):
- ... L.append(x*x)
- ...
- >>> L
- [1, 4, 9, 16, 25, 36, 49, 64, 81]
- >>> print [x*x for x in range(1 , 11)]
- [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- >>>
【x*x for x in range(1,11)】
第一:把要生成的元素x*x放在前面
第二:后面跟上for循环
第三:也可加上if条件 如筛选出偶数的平方x%2==0
befor=[1000,2000,3000,4000]
after=[]
for one in befor:
if(one>2000):
after.append(one*0.9)
以上可写成
after=[one*0.9 for one in befor if one>2000]
range(4)
>>>4,3,2,1
range(1,4)
>>>1,2,3
range(4,1,-1) 这里的-1表示从4-1
>>>4,3,2
冒泡排序
def mysort(alist):
for i in range(len(alist)-1,0,-1): # i 是最后一个元素到第二个元素,两两相比较大的往后移;len(alist)表示列表最后一位
for j in range(0,i): #第一轮的比较是所有元素,第二轮是n-1个元素
if alist[j]>alist[j+1]:
alist[j],alist[j+1]=alist[j+1],alist[j] #如果大于就交换一下位置
return alist
print mysort([3,2,4,66,11])
beforb