之前的文章标题只写的day XX,自己之后去看都一脸懵X,所以加内容标题了
对列表和元组的特殊操作
- 切片
- 迭代
- 列表生成器
切片
简单讲就是实现了,取一系列的元素。样子和通过下标访问列表差不多。
L=[1,2,3,4,5,6,9,8]
print(L[1:4:2])#[2,4]
List[a:b:c]
起点,终点,步长。如果是负数端点就是倒数,缺省端点就是直到尾部(都是向右数的),或者以头做起点。
迭代
与C++的for不同,它的可迭代的对象要宽泛的多,比如list比如字符串等等,直接是每次循环都对list中的元素进行操作的
for i in L:
for t in 'ab':
print(i,t)
列表生成式
神奇的东西
先想,如果不用列表生成式,怎么用for生成1到10的平方的列表呢?
L=[]
for i in range(1,11):
i*=i
L.append(i)
print( L)
用列表生成式的方法
L1=[i*i for i in range(1,11)]
print( L)
可见,就是把for中的最后直接生成元素的语句块(目的)放在最前,将for(条件)放在后面,读起来挺通顺的:-)。
L2=[m+n for n in 'ABC' for m in'abc']
print(L2) #['aA', 'bA', 'cA', 'aB', 'bB', 'cB', 'aC', 'bC', 'cC']
L2=[m+n for m in 'ABC' for n in'abc']
print(L2) #['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']
当嵌套二次循环时,条件的次序有没有影响呢?