python学习笔记02-python高级学习

1. 切片

注意,list、tuple、字符串'xxx'、Unicode字符中u'xxx'都可以看成一种list。都可以进行切片操作。

#定义一个list
>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
#取出list的前三个元素
>> L[0:3]
['Michael', 'Sarah', 'Tracy']
#取出list的第二个和第三个元素
>> L[1:3]
['Sarah', 'Tracy']
#取出list的前三个元素的简写方式
>> L[:3]
['Michael', 'Sarah', 'Tracy']
#取出list的倒数第二个元素
>> L[-2]
'Bob'
#取出list的倒数第一个和倒数第二个元素
>> L[-2:]
['Bob', 'Jack']
#取出list的倒数第三和倒数第二个元素(不包含倒数第一个元素哦)
>> L[-3:-1]
['Tracy', 'Bob']
#取出list的前四个元素(每两个取一个)
>> L[:4:2]
['Michael', 'Tracy']
#取出list的所有元素(每三个取一个)
>> L[::3]
['Michael', 'Bob']
#取出list的所有元素(复制当前list)
>> L[:]
['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
>> 

2. 迭代

#!/usr/bin/env python
d = {'a': 33, 'b': 128, 'c':66 }
for key in d:
        print key
print '\n'
for value in d.itervalues():
        print value
print '\n'
for key,value in d.iteritems():
        print 'k=',key,'v=',value
print '\n'
for ch in 'ABC':
        print ch
print '\n'
from collections import Iterable
print isinstance('abc',Iterable)
print isinstance([1,2,3],Iterable)
print isinstance(123,Iterable)
print '\n'
for index,value in enumerate(['A','B','C']):
        print 'index =',index,'value =',value
print '\n'
for x,y in [(1,1),(2,4),(3,9)]:
        print 'x =',x,'y =',y

3.列表生成式List Comprehensions

#!/usr/bin/env python
#生成一个1到11的list
print range(1,11)
#生成一个1到11的列表,这个列表中的每个元素都自动乘以2
print [ x * 2 for x in range(1,11)]
print [ x + 1 for x in range(1,11) if x % 2 == 0]
#使用双层for来生成列表
print [ m + n for m in 'ABC' for n in 'XYZ']
#导入os模块
import os
#遍历当前文件夹下所有的文件和目前
print [dir for dir in os.listdir('.')]
d = {'x':'A','y':'B'}
#遍历字典
for k,v in d.iteritems():
        print k,'=',v
#从字典中生成一个k=v格式的列表
print [k + '=' + v for k,v in d.iteritems()]
#将列表中所有字符串转换成小写
L = ['Hello','World','IBM']
print [s.lower() for s in L]
x = 'abc'
y = 123
#判断变量是否为字符串
print isinstance(x,str)
print isinstance(y,str)

4. 生成器generator

#!/usr/bin/env python
#使用小括号定义一个生成器
g = (x * 2 for x in range(3))
#遍历生成器
for n in g:
        print n
print '\n'
#定义一个生成器
def odd():
        print 'step 1'
        yield 1
        print 'step 2'
        yield 2
        print 'step 3'
        yield 3
#获取一个生成器实例
o = odd()
#从生成器中获取下一个元素
print o.next()
print o.next()
print o.next()
print '\n'
#定义一个复杂的生成器
def even(max):
        n = 0
        while n < max:
                n = n + 1
                yield n * 2
#遍历生成器
for n in  even(6):
        print n

猜你喜欢

转载自blog.csdn.net/ybf326/article/details/83240733