首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python语法学习记录(21):for在单行中的理解

  • 25-03-03 18:03
  • 3322
  • 13502
blog.csdn.net

在这里插入图片描述

1、for在单行中的理解

返回对象应该是一个生成器

a = [1,2,3,4]
print(type(i for i in a))
  • 1
  • 2

在这里插入图片描述

通过这个生成器内部的魔法函数或者运算重载进行其他数据类型的变化 例如在此生成器两边加入中括号[] 就会将生成器对象构成并返回一个新的列表,例子如下:

a = [1,2,3,4]
b = [ type(i) for i in a]
print(type(b))
print(b)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

可以看到内部的i还是与正常for循环中的迭代器一样进行迭代的

2、多个for的嵌套

有的时候我们会使用到多层的for的嵌套,因为所需要迭代的数据类型有多层循环需要处理

a = [[1,2],[3,4]]
b = [ [j for j in i] for i in a]
print(b)

a = [[1,2],[3,4]]
b = [ [j+1 for j in i] for i in a] #迭代中是可以有运算或者其他操作的就跟正常语序语法是一样的
print(b)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

多个for嵌套生成一个列表 主要用于展开成一个列表

a = [[1,2],[3,4]]
b = [ j for i in a for j in i ]  # 注意这里需要先出现的是i 之后才可以使用i
print(b)
  • 1
  • 2
  • 3

在这里插入图片描述

# 可适用于这种场景的展开非常方便
a = [
    [1,3],
    [3],
    [1,2,3],
    [1,2],
]
# 但是对于这种就会报错
# a = [1,3,[3],[1,2,3],[1,2]]
b = [ j for i in a for j in i ]
print(b)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
除了列表以外的其他例子

a = [{'id':1 ,'label':1 },{'id':2 ,'label':4 }]# a 的结构为一个两元素的列表   每个元素中有一个字典   每个字典中有两个key分别为 id 和 label
b =[
    [yuansuzidian[duiyingyuansu] for yuansuzidian in a] for duiyingyuansu in ['id','label']
    ]
# yuansuzidian 对应于 a中的两个元素迭代   duiyingyuansu 对应于 ['id','label'] 中的两个元素分别为 'id' 'label'
print(b)

b ={duiyingyuansu:[yuansuzidian[duiyingyuansu] for yuansuzidian in a] for duiyingyuansu in ['id','label']}
print(b)
# yuansuzidian 对应于 a中的两个元素迭代   duiyingyuansu 对应于 ['id','label'] 中的两个元素分别为 'id' 'label'
# 同时这句话使用字典的形式 把最后的生成器做出来一个字典  目的是为了吧id和label分成两个对应的列表
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

与if的连用

dic = {
    1:{'index':2, 'data':'klm'},
    2:{'index':7, 'data':'cde'},
}
ran = range(1,5)
ret = [(k, v) for (k, v) in dic.items() if v['index'] in ran]
print(ret)
# 其含义是:
ret = []
for (k,v) in dic.items():
    idx = v['index']
    if idx in ran:
        ret.append( (k,v) )![在这里插入图片描述](https://img-blog.csdnimg.cn/2020071322001837.png)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树基础语法缩进规则416632 人正在系统学习中
注:本文转载自blog.csdn.net的呆呆象呆呆的文章"https://blog.csdn.net/qq_41554005/article/details/107325727"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top