python学习笔记(三)---高级特性

一、切片

取无数多个list元素 不用一个个取得笨方法就用切片

对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

对应上面的问题,取前3个元素,用一行代码就可以完成切片:

记住倒数第一个元素的索引是-1,第一个数的索引是0

#1.传统方法
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
R = []

#取前N个元素,也就是索引为0-(N-1)的元素,可以用循环 n=3 for i in range(n): R.append(L[i]) print( R ) #2 切片方法 print( L[0:3] ) print( L[:3] ) print( L[-2:] ) print( L[-2:-1] ) #切片操作十分有用。我们先创建一个0-99的数列 L = list(range(100)) print("前10个数") print ( L[:10]) print(" 前10个数 隔2个取1个数") print ( L[:10:2]) print(" 所有数,正向,每10个取一个数") print(L[::10]) print("后10个数") print(L[-10:]) print('直接定义取几个数') print ( 'ABCDEFG'[:3] ) print ( 'ABCDEFG'[::2] ) print((0, 1, 2, 3, 4, 5)[:3]) print( L[:] )

其实是substring

二、迭代

给定一个对象(tuple、list、dict、string字符串),我们可以通过for循环来遍历,这种遍历我们称为迭代(Iteration)

在Python中,迭代是通过以下内容来完成的

for ... in  

只要当前对象是可迭代对象,则for循环就可正常运行,判断当前对象是否可迭代,且对当前对象进行迭代

# -*- coding: utf-8 -*-
from collections import Iterable
print(isinstance([4,5,6],Iterable))
#1.迭代打印list
for i in [4,5,6]:
    print(i)
#print(2.迭代打印tuple)
for i in (6,7,8):
    print (i)
'''3.迭代打印dict
     使用当前的迭代可以输出key、输出value、输出key和value
'''
d={'a':1,'b':2,'c':3}
for value in d.values():
    print(value)
for key in d.keys():
    print(key)
for key,value in d.items():
    print (key,value)

for x,y in [(1,1),(2,4),(3,9)]:
    print(x,y)

#4.迭代字符串
for i in 'ABC':
    print (i)
    

三、列表生成式

 

# -*- coding: utf-8 -*-
#1.法一 使用列表生成式,动作、循环、条件
a=[x * x for x in range(1, 11) if x % 2 == 0]
print(a)


#2.法二 原本的方式
L = [ ]
for x in range(1,11):
    if x % 2 == 0:

        L.append(x*x)
print(L)

#3.两层循环
b=[m+n for m in 'ABC' for n in 'XYZ']
print(b)

结果:

四、生成器

五、迭代器

原文地址:https://www.cnblogs.com/chenxiaomeng/p/12249959.html