python学习笔记3
2015-08-11 19:57
295 查看
合并字符串
r来形成原始字符串+不能像c#一样直接连接一个字符串和有关数值。
切片
可以 从头开始也可以倒数计数,也可以间隔一定距离取>>> numlist=list(range(100)) >>> numlist [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] >>> numlist[:10) SyntaxError: invalid syntax >>> numlist[:10] #这里冒号前面的0可以省略 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> numlist[:10:2] [0, 2, 4, 6, 8] >>> numlist[-10::2] #这里冒号中间的-1可以省略; [90, 92, 94, 96, 98] >>> numlist[-10::3] [90, 93, 96, 99] >>>
迭代:
可迭代对象iterable 、 for … in … 、 enumerate函数可以把一个索引元素对,也就相当于一个带序号和实际内容的元素对组成的list容器和生成器都是可迭代对象,而只有生成器才是迭代器对象。
容器包括序列(list与tuple)、集合set、字典dict。Enumerate可以对序列生成索引元素对。
mydict={} mydict['数学']=60 mydict['语文']=90 mydict['英语']=100 for str,score in mydict.items(): print(str,score) for str in mydict.items(): print(str) for index,str in enumerate(mydict.items()): print(index,str)
列表生成式
列表生成式就是用生成式来简化循环生成列表的过程。生成式与if语句联合
generatedList=[x*x for x in range(1,11) if x%2==0] print(generatedList);
两个for联合可以使用两层循环形成全排列
allSortedList=[(x,y) for x in 'ABC' for y in [1,2,3]] print(allSortedList)
列出当前目录下所有文件和目录名
import os dir=[d for d in os.listdir('.')] print(dir)
字符串变小写
#测试 strlist=['Abc','dE12',334,'12F'] #strlist=[strs.lower() for strs in strlist if isinstance(strs,str)] strlist=[strs for strs in strlist \ if not isinstance(strs,str) or isinstance(strs.lower(),str)] print(strlist)
生成器
如果列表元素能够按照某种算法推算出来,那就不必生成完整的列表,只要根据需要来生成,这样就能节省内存空间。这就是生成器generator();generator是一个算法,而不是一个列表,如果想访问下一个元素需要使用next(g);生成器有两种方法创建,第一种是使用生成式的方式,第二种是使用定义生成器函数的方式。
生成式也是iterable对象
生成式的方式生成生成器
g=(x*x for x in range(1,10)) for n in g: print(n)
iterable对象在迭代到最后一个元素后如果继续迭代会产生StopIteration异常,可以进行捕获。
# -_-! coding: utf-8 -_-!
myList=list(range(1,100))
for index,num in enumerate(myList):
print(index,num)
#迭代
mydict={}
mydict['数学']=60
mydict['语文']=90
mydict['英语']=100
for str,score in mydict.items():
print(str,score)
#dict的默认是迭代key,可以用.value()迭代值,可以用.items()迭代键值对
for str in mydict.items():
print(str)
for index,str in enumerate(mydict.items()):
print(index,str)
#生成式
#与if语句联合
generatedList=[x*x for x in range(1,11) if x%2==0] print(generatedList);
#两个for联合
#可以使用两层循环形成全排列
allSortedList=[(x,y) for x in 'ABC' for y in [1,2,3]] print(allSortedList)
#列出当前目录下所有文件和目录名
import os dir=[d for d in os.listdir('.')] print(dir)
#字符串变小写
#测试 strlist=['Abc','dE12',334,'12F'] #strlist=[strs.lower() for strs in strlist if isinstance(strs,str)] strlist=[strs for strs in strlist \ if not isinstance(strs,str) or isinstance(strs.lower(),str)] print(strlist)
lista=[1,2,3]
listb=[2,3,4]
lista=lista+listb;
print(lista)
#生成器
##生成式的方式生成生成器
g=(x*x for x in range(1,10)) for n in g: print(n)
##定义函数的方式生成生成器
###斐波那契额数 1 1 2 3 5 8
def fab(n):
x,y,z=0,1,0
while z<n:
yield y #返回生成器的函数与其他函数的区别就在于print改成yied,在此处就可调用next()
x,y=y,x+y#这里可以用作交换x,y的值比其它语言要少了两行
z=z+1
return 'done'
g=fab(10)
for n in g:
print(n)
##捕获StopIteration异常
def fab(n):
x,y,z=0,1,0
while z<n:
yield y #返回生成器的函数与其他函数的区别就在于print改成yied,在此处就可调用next()
x,y=y,x+y#这里可以用作交换x,y的值比其它语言要少了两行
z=z+1
return 'done'
f=fab(9)
while True:
try:
x=next(f)
print(x)
except StopIteration as e:
print('stopIteration结束了',e.value)
break
#杨辉三角
def triangles():
x,y,z,temp=[1],0,0,[]
while True:
yield x
for num in x:
temp.append(num+y)
y=num
temp.append(x[-1]+z)
x,temp,y=temp,[],0
return 'done'
n=0
for t in triangles():
print(t)
n=n+1
if n==10:
break
相关文章推荐
- Python补充05 字符串格式化 (%操作符)
- python 详解re模块
- 从错误中学python(2)————字符串转浮点数
- python实现简单爬虫以及正则表达式简述
- Python中subprocess学习
- Python 之 sklearn 实现 PCA 降维
- python 学习点滴
- python 中文异常问题记录
- python 文件中的中文错误,SyntaxError: Non-ASCII character '\xe6' in file
- Python 模块学习:os模块
- Python中xlrd、xlwt、win32com模块对xls文件的读写操作
- Python小技巧之——基类初始化
- 'ascii' codec can't encode characters in position 1-5: ordinal not in range(128)
- Python中库或者模组的解释
- Python的变量参数
- python标准日志模块logging的使用方法
- 怎么用cmd 运行python 快捷键(WIN+R)在“运行”中输入“cmd ”然后在命令提示符中输入set PATH=%PATH%;D:\乱七八糟的软件\Python-3.4.3,接下来,再在当前的 cmd下输入python,即可运行。———没嘛用 直接文件夹shift右键
- python爬虫 scrapy框架 知乎zhihu 模拟登陆
- python logging
- Python的多进程编程