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学习7 -> 正文阅读

[Python知识库]Python学习7

迭代

# 迭代
# Python的迭代不仅可以用在 list 或tuple 上,还可以作用在其他可迭代对象上。

# 迭代字符串
for char in "好好学Python,将来去板砖":
    print(char, end=" ")
print("\n")
# 迭代字典

dict = {"济南":"鲁A", "青岛":"鲁B", "烟台":"鲁Y"}
# 键迭代
for keys in dict.keys():
    print("键名--->", keys)
print("\n")
# 值迭代
for values in dict.values():
    print("值名--->", values)
print("\n")
# 键值对迭代
for item in dict.items():
    print("键值对--->", item)
print("\n")

# 迭代list
for x in [x for x in range(6)]:
    print("--->{}".format(x))
print("\n")

迭代器?

iter()方法和next()方法

# Python 迭代器
# 迭代器有两个基本的方法:iter() 和 next(),且字符串,
# 列表或元组对象都可用于创建迭代器,迭代器对象可以使用常规 for 语句进行遍历,也可以使用 next() 函数来遍历。

# iter()  传入一个可迭代对象
str1 = "好好学Python,将来去搬砖"
iter1 = iter(str1)    # 返回一个对象
iter2 = list(iter(str1)) # 解析迭代对象

print(iter1)
print(iter2)
print("\n")

# 遍历迭代器
for x in iter1:
    print(x)

# 元组创建迭代器
iter3 = iter((1,2,3,4))
# next方法遍历迭代器或
while True:
    try:
        print(next(iter3))
    except StopIteration:   # 没有元素进行迭代的时候捕获错误
        break


一行代码写9*9乘法表

# 一行代码写9*9乘法表
print("\n".join([" ".join("{} x {} = {}\t".format(i,j, i*j) for j in range(1, i+1)) for i in range(1, 10)]))

# 代码解析
# 生成第一个迭代对象
# [for i in range(1, 10)]
# 生成第二个迭代对象
# [(for j in range(1, i+1)) for i in range(1, 10)]
# 计算参数
# [( "{} x {} = {}\t".format(i,j,i*j) for j in range(1, i+1)) for i in range(1, 10)]
# join() 指定方式连接字符串
# print("\n".join([" ".join("{} x {} = {}\t".format(i,j,i*j) for j in range(1, i+1)) for i in range(1, 10)]))

生成器

generator

特点 边循环边计算,配合yield使用 在生成器中调用next()时遇到yeild语句返回

# 生成器
# 但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含 1000 万个元素的列表,
# 不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
# 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?
# 这样就不必创建完整的 list,从而节省大量的空间。
# 在 Python 中,这种一边循环一边计算的机制,称为生成器:generator。
# 在 Python 中,使用了 yield 的函数被称为生成器(generator)。
# 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器

# 生成器创建 [] 改为()
gen = (x * x for x in range(1,5))
print(gen)

# 遍历生成器
for x in gen:
    print(x)

# 函数创建生成器
def func():
    for j in range(1, 5):
        yield j

# print(func())

# 生成器特点,一边循环,一边计算
# 变成 generator 的函数,
# 在每次调用 next() 的时候执行,遇到 yield语句返回,再次执行时从上次返回的 yield 语句处继续执行
def fibon(n):
    a = b = 1
    for i in range(n):
        yield a
        a,b = b, a+b

# for i in fibon(100):
#     print(i)

def odd():
    print ( 'step 1' )
    yield ( 1 )
    print ( 'step 2' )
    yield ( 3 )
    print ( 'step 3' )
    yield ( 5 )

o = odd()
print(next(o))
print(next(o))
print(next(o))
print(next(o))

杨辉三角

# 杨辉三角
def triangle():
    L = [1]
    while True:
        yield L
        L.append(0)
        L = [L[i-1] + L[i] for i in range(len(L))]

n = 0
for i in triangle():
    print(i)
    n = n + 1
    if n == 10:
        break
# 迭代器和生成器

class func:
    def __init__(self, start):
        self.start = start

    def __iter__(self):
        n = self.start
        while n > 0:
            yield n
            n -= 1
    def __reversed__(self):
        n = 1
        while n <= self.start:
            yield n
            n += 1

# for i in reversed(func(30)):
#     print(i)
#
# print("\n")
# for j in func(30):
#     print(j)


# 同时迭代多个序列
# 使用zip包 ,基于最短的遍历

ls1 = ["济南", "青岛", "烟台"]
ls2 = ["鲁A", "鲁B", "鲁Y"]
for city, plate in zip(ls1, ls2):
    # print(city, plate)
    pass

dict1 = dict(zip(ls1, ls2))
print(dict1)

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:40:50  更:2021-09-08 10:42:20 
 
开发: 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 13:48:43-

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