#-*- 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 Iterable
print(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 os
dirl = [d for d inos.listdir(".")]#该方法可以列出文件和目录
print(dirl)
dirl1 = [d for d inos.listdir("..")]
print(dirl1)
dirl2 = [d for d inos.listdir("/")]
print(dirl2)
dirl3 = [d for d inos.listdir("C:/")]
print(dirl3)
dirl4 = [d for d inos.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("*******************************************************")
deffib(max):
n,a,b = 0,0,1while n<max:
print(b)
a,b = b,b+a
n = n+1return"over"
print(fib(20))
defg(max):
n,a,b = 0,0,1while n<max:
yield b
a,b = b,b+a
n = n+1return"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]defyangHui3():
a = [1]
b = [1,1]
whileTrue:
yield a
a = b
temp = [1,1]
m = 1while m<=len(b)-1:
item = b[m-1]+b[m]
temp.insert(m,item)
m = m+1
b = temp
max = 1for x in yangHui3():
print(x)
max = max+1if max>10:
break#再来看看大神写的defyangHui3_plus():
b = [1]
whileTrue:
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+1if 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])
Python学习笔记04python_senioriterate#-*- 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: p