python-3高级特征

1-切片

L = ["qinzb",'fengyong','bingyan']
L[0:3] #截取从索引0开始到索引3结束(不包含索引3)
L[:3]  #如果索引是从0开始则可省略
L[-1:] #获取最后1个元素

L = list(range(100)) #创建0-99数列
L[10:20] #[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
L[:10:2] #[0, 2, 4, 6, 8] 前10个数,每2个取一个:
L[:] #甚至什么都不写,只写[:]就可以原样复制一个list:

#tuple也可以用切片操作
(0, 1, 2, 3, 4, 5)[:3] #(0, 1, 2)

#字符串'xxx'也可以看成是一种list
'ABCDEFG'[:3] #'ABC'
#Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单

2-迭代

d = {'a':1, 'b':2, 'c':3}
for key in d:
    print(key)

list = ['qinzb','fengyong','bingyan']; 
for i,value in enumerate(list): #Python内置的enumerate函数可以把一个list变成索引-元素对
    print(i,value)
    
for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x, y)
    
from collections import Iterable 
isinstance('abc', Iterable) # str是否可迭代, 返回True

3-列表生成式

list(range(1,11)) #生成1-11之间的整数
[x * x for x in range(1,11)] #生成[1x1, 2x2, 3x3, ..., 10x10]
[x * x for x in range(1, 11) if x % 2 == 0] #[4, 16, 36, 64, 100] 这样我们就可以筛选出仅偶数的平方:
[m + n for m in 'ABC' for n in 'XYZ'] #['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

  3.2利用两个变量生成list

d = {'x':'A', 'y':'B', 'z':'C'}
for k,v in d.items():
    print(k,'=',v)    
[k+'='+v for k,v in d.items()] #同上面for方法,

 3.3 使用案例

L = ['Hello', 'World', 'IBM', 'Apple']
[s.lower() for s in L] #注意L值不会变,返回值会变成小写

import os
print([d for d in os.listdir('c:\\')]) #列出C盘下所有文件夹和目录
#isinstance(x, str) 判断str是否为字符串,是返回True,否则返回False

猜你喜欢

转载自www.cnblogs.com/qinzb/p/9020294.html
今日推荐