IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python高效编程2 -> 正文阅读

[Python知识库]Python高效编程2

1:如何让字典保持有序

from collections import OrderedDict

d=OrderedDict()

2:用户历视记录功能

from collections import deque
q=deque([],5)
pickle.dump(1,open('history','w'))
q2=pickle.load(open('history'))

3:实现可迭代对象和迭代器对象

__iter__实现了此方法可迭代 或者 __getitem__

t=iter(l)
t.next()

实现迭代

from collections import Iterable,Iterator

#气温的迭代器
class WeatherIterator(Iterator):
    def __init__(self,cities):
        self.cities=cities
        self.index=0
    
    def getWeather(self,city)"
        ....

    def next(self):
        if self.index==len(self.cities):
            raise StopIteration
        city=self.cities[self.index]
        self.index+=1
        return self.getWeather(city)


#可迭代对象
class  WeatherIterable(Iterable):
    def __init__(self,cities):
        self.cities=cities
    
    def __iter__(self):
        return WeatherIterator(self.cities)
for x in WeatherIterable([u'北京',u'上海',u'广州'])
    print(x)

这一块可以参看:(67条消息) 理解python中的迭代器对象、可迭代对象、生成器对象_helloworld987456的博客-CSDN博客icon-default.png?t=M1L8https://blog.csdn.net/helloworld987456/article/details/117407478

4:使用生成器函数实现可迭代对象

生成器:yield

calss  P:
    def __init__(self,start,end)
        self.start=start
        self.end=end
    
    def isP(self,k)
        if k<2:
            return False
        for i in xrange(2,k):
            if k%i==0:        
                   return False
        rerturn True
    
    def __iter__(self):
        
        for k in xrange(self.start,self.end+1)
            if self.isP(k):
                yield k



for x in P(1,100):
    print(x)

5:进行反向迭代以及如何实现反向迭代

l=[1,2,3,4,5]
l.reverse()
l[::-1]

上面两种消耗资源。
iter(l)  得到正向迭代器
reversed(l)  得到反向迭代器


for x in reversed(l):
    print(x)

iter需要__iter__
reversed需要__reversed__方法

def __reversed__(self):
    t=self.end
    while t>=self.start
        yield t
        t-=self.step


6: 对迭代器做切片操作

from itertools improt islice

islice(f,100,300)

for line islice(f,100,300)

islice(f,500)
islice(f,None)

 

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:27:16  更:2022-03-10 22:30:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:53:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码