04python_senior
来源:互联网 发布:什么录屏软件好 编辑:程序博客网 时间:2024/05/22 00:53
Python学习笔记
04python_senior
- iterate
#-*- coding:utf-8 -*-print("iteration")l = [1,2,3,4,5,5,6]for i in l: print(i)kv = {"city":"shanghai","name":"Aono","computer":"ThinkPad"}for key in kv: print(key)for value in kv.values(): print(value)#内部编码估计用的是hash 每次一样的输出顺序 本来应该是随机的for k,v in kv.items(): print(k,v)for a in "123dnfoiad": print(a)for a in (1,23,4,5,6,123): print(a)print("判断是否可以被迭代")from collections import Iterableprint(isinstance("abc",Iterable))print(isinstance("123",Iterable))print(isinstance(123,Iterable))print("变成Java类型的那种有索引编号的形式")for i,value in enumerate(["a","b","c"]): print(i,value)print("实际上就是变成了tuple输出了,so esay")
- listBuider
#-*- coding:utf-8 -*-print("列表生成式")print("********************normal**********************")l = list(range(1,11))print(l)l1 = []for x in range(1,11): l1.append(x*x)print(l1)print("*********************list comprehensions************************")l2 = [x*x for x in range(1,11)]print(l2)l3 = [x*x for x in range(1,11) if x%2 == 0]print(l3)print("全排列的实现,一句代码足矣")l4 = [m + n for m in "ABC" for n in "zxy"]print(l4)print("*************************列出目录*********************************")import osdirl = [d for d in os.listdir(".")]#该方法可以列出文件和目录print(dirl)dirl1 = [d for d in os.listdir("..")]print(dirl1)dirl2 = [d for d in os.listdir("/")]print(dirl2)dirl3 = [d for d in os.listdir("C:/")]print(dirl3)dirl4 = [d for d in os.listdir("C:\\")]print(dirl4)#nice 想弄的东西都弄出来了 哦吼吼吼d = {"x":"A","y":"B","z":"C"}for k,v in d.items(): print(k,"=",v)print("变身")print([k+"="+v for k,v in d.items()])#注意加号!!!!!加号是加在了字符串之间的 很好玩呐print([s.lower() for s in dirl4])print("*************************联系啦****************************")ls = ["FIUSADA",12,"UYIuIojounl","UIOLnlkadnflanKBIUoadn"]print([l for l in ls if isinstance(l,str)])
- slice
l = [1,2,3,4,5,6,7,8,9]print(l[0],l[1],l[2])print("麻烦的要死")print(l[0:3])#前三个但不包括第四个,输出的是listprint(l[:3])print(l[:-1])print(l[1:2])s = list(range(100))print(s)print(s[::3])print(s[25:89:2])str1 = "efauicsdfiaysdsainlsamc"print(str1[:6])print(str1[-8:])t = tuple(range(50))print(t)print(t[0:15])#看来无论是什么东西,切片这东西和具体的什么类型是没有任何关系的都是用[]这个作为符号的
- generator
l = [x for x in range(1,11)]print(l)g = (x for x in range(1,11))print(g)#<generator object <genexpr> at 0x0054D3F0>print("next",next(g))for x in g: print(x)#第一个值已经被next取了,for循环取得的值是从第2个开始向后遍历的print("*******************************************************")def fib(max): n,a,b = 0,0,1 while n<max: print(b) a,b = b,b+a n = n+1 return "over"print(fib(20))def g(max): n,a,b = 0,0,1 while n<max: yield b a,b = b,b+a n = n+1 return "over"print(fib(20))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))print(next(g(6)))#这里的输出结果都是1,因为g函数每次都是新生成的##########################################################but 我们把它变成一个变量试试g1 = g(20)print(next(g1))print(next(g1))print(next(g1))print(next(g1))print(next(g1))print(next(g1))print(next(g1))print(next(g1))print(next(g1))#这回对了 生成的是一串fib数列,因为对象不是新生成的generator,而是已经定了的########################################################for g in g(6): print(g)#这里拿不到over的返回值(return语句的返回值没有了)##########################################################print("*******************************************************")for g in g1: try: print(g) except StopIteration as e: print(e.value) break#杨辉三角#l1 = [1]#l2 = [1,1]#l3 = [1,2,1]#l4 = [1,3,3,1]def yangHui3(): a = [1] b = [1,1] while True: yield a a = b temp = [1,1] m = 1 while m<=len(b)-1: item = b[m-1]+b[m] temp.insert(m,item) m = m+1 b = tempmax = 1for x in yangHui3(): print(x) max = max+1 if max>10: break#再来看看大神写的def yangHui3_plus(): b = [1] while True: yield b b = [1]+[b[i]+b[i+1] for i in range(len(b)-1)]+[1]max = 1for x in yangHui3_plus(): print(x) max = max+1 if max>10: break#思考过程,range出的是从0开始的list,而且用的是for循环,如果list为空也就不遍历了,甚是巧妙lisa = [1,1]print(len(lisa))for i in range(len(lisa)-1): print("here",i)print(lisa[0])
- Iterator
0 0
- 04python_senior
- 04
- 04
- 04
- 04
- 2007-04-04
- 开篇-2009-04-04
- 04/04/09
- 2010-04-04
- 10-04-04SD
- 2014-04-04
- 2014-04-04
- PROJECT 04-04
- 2016-04-04
- 216-04-04
- 2014-04-04
- 2005.10.04
- 06.05.04
- 本地方法(JNI)——访问数组元素+错误处理
- Java设计模式-命令模式(Head First 设计模式5)
- 【引】swift是什么?
- 如何更好的认识自己?
- Linux cat命令的使用案例
- 04python_senior
- 图片垂直居中
- poj3358
- JVM_Bind问题的解决方案
- 【LeetCode】144. Binary Tree Preorder Traversal
- 多线程还是多进程的区别
- Git *** Please tell me who you are.
- 电话号码的写法
- 理解“红黑树”