python for循环的迭代

本文深入探讨Python中的迭代概念,包括迭代器的使用、生成器的创建与表现形式,以及列表解析等高级特性。同时,文章对比了不同类型的迭代方式,如for循环与next方法,并介绍了内存优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#什么是迭代:更新换代
l=[12,1,25,3]
for i in l:
    print(i)
iter_l=l.__iter__()
print(iter_l.__next__())#相当于for的迭代
index=0
while index < len(l):
    print(l[index])
    index+=1
m=open('a.txt','r+')
iter_m=m.__iter__()
print(iter_m.__next__(),end='')
print(iter_m.__next__(),end='')
print(next(iter_m))
#只要遵循可迭代类型  就是  可迭代对象
#只要有生成器也就是数据类型,也就是可迭代对象
                   #生成器 在python 中有两种表现形式:函数和生成器表达式
#生成器函数的表现形式
def test():
    yield 100
g=test()
print(g.__next__())
  #三元表达式
name='alxe'
res='sb' if name=='alxe' else 'dsb'
print(res)
#列表解析
egg_list=[]
for i in range(10):
    egg_list.append('鸡蛋%s'%i)
print(egg_list)
l=['鸡蛋%s'%i for i in range(10)]
print(l)
li=['成绩%s'%i for i in range(10) if i > 5 ]
print(li)
ll=('鸡蛋%s'%i for i in range(10))#直接的可迭代 是用元组的方式 生成器 使用元组表现形式
print(next(ll))
#在用next的时候 如果next 完毕  会报错
#生成器表达式 直接可以省内存
print(sum(list(range(10000000))))
print(sum(i for i in range(10000)))
                            #浅拷贝
s=[[1,2],'alex','pl']
s1=s.copy()
s1[0][1]=5
print(s,s1)
#修改列表中嵌套列表的元素 浅拷贝 会出现问题
#浅拷贝只能拷贝列表中的第一层
#深拷贝 全部克隆
#copy.copy()浅拷贝
#copy.deepcopy()深拷贝
                               #set 重点
#去重性  在列表中的嵌套列表,和字典的时候  时候 不能用set 转换
#可变集合 不能作为字典的键
li=[1,2,3,74]
s=set(li)
s.add('uu')#在集合中只能添加一个元素
print(s)
s.update([12,'eee'])#在uppdate中连个元素时候必须用列表的形式
print(s)
s.remove('eee')
print(s)
s.pop()
print(s)#随机删除 pop
print(set('nn')<set('alexalexank'))#必须有元素在另一个集合里面
print(set('nn') and set('alexalexank'))#取并集
print(set('nn') or set('alexalexank'))
#差集 (-  ) .difference
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值