首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python列表推导式(1)_Python自学第二十三节

Python列表推导式(1)_Python自学第二十三节

作者头像
张旭博客
发布于 2022-12-27 06:49:07
发布于 2022-12-27 06:49:07
65700
代码可运行
举报
文章被收录于专栏:zxbkzxbk
运行总次数:0
代码可运行
  • 列表推导式,也叫列表解析式,可以使用非常简洁的方式来快速生成满足特定需求的列表,属于非原地操作。
  • [表达式 for 变量 in 序列或可迭代对象if条件表达式]
  • 如下示例,得到‘hello’每个字符的ASCII码值,并存放到列表中
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---以前使用for循环的方法:
>>> a = []
>>> for i in 'hello':
...     a.append(ord(i))
>>> a
[104, 101, 108, 108, 111]

---列表推导式方法:
>>> [ord(i) for i in 'hello']  # i来自for i in 'hello'的循环,ord处理每次循环的结果
[104, 101, 108, 108, 111]

---若把结果在转换成字符:
>>> a = [ord(i) for i in 'hello']   #非原地操作,把上一步得到的结果赋值给a
>>> [chr(i) for i in a]   #a得到A
['h', 'e', 'l', 'l', 'o']
---若把上一步的结果输出为字符串:
>>> ''.join([chr(i) for i in a])   #join方法把列表转换成字符串
'hello'

如果列表中很多元素首尾存在空格,可以使用列表推导式配合 strip() 方法快速去除这些空格。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> a = ['   hello   ','   python','nihao   ']
>>> a
['   hello   ', '   python', 'nihao   ']
>>> [i.strip() for i in a]
['hello', 'python', 'nihao']

如把数值型转换成文本型,可以使用列表推导式配合 str() 方法快速进行转换。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> [ i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [str(i) for i in range(10)]
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

练习:

阿凡提和国王下棋,阿凡提赢了,他让国王赏给他一些米。棋盘一共有64个格子,第一个格子放1粒米,第二个格子放2粒米,第3个格子放4粒米,也就是2的n-1次方。那么阿凡提最后一共能得到多少米? 第64格也就是2的63次方

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> [2**i for i in range(64)]  #每个格子的数量如下
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1125899906842624, 2251799813685248, 4503599627370496, 9007199254740992, 18014398509481984, 36028797018963968, 72057594037927936, 144115188075855872, 288230376151711744, 576460752303423488, 1152921504606846976, 2305843009213693952, 4611686018427387904, 9223372036854775808]
>>> sum([2**i for i in range(64)])   #使用sum函数把值相加即为最后的结果
18446744073709551615
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
我也出现这个问题,站点也配置好了,备案也通过了,依然不行
我也出现这个问题,站点也配置好了,备案也通过了,依然不行
回复回复点赞举报
推荐阅读
线上问题排查总结
线上问题排查总结 Cpu飙高可能的原因 CAS自旋 没有控制自旋次数;乐观锁 死循环----cpu飙高的问题;控制循环次数 云服务器redis被注入挖矿程序;端口像公网暴露;Redis端口不要被外网访问,ip黑名单 服务器被DDOS攻击导致cpu飙高。限流ip、黑名单,图形验证码。 Windows系统排查cpu飙高方法 制造死循环让cpu飙高的代码 package com.company; /** * @author 晓果冻 * @version 1.0 * @date 2021/6/23 7:45
晓果冻
2022/09/08
3060
线上问题排查总结
反射学习
代码仓库地址:https://gitee.com/cgd0526/demo/tree/master/src/main/java/com/example/test/%E5%8F%8D%E5%B0%84
晓果冻
2022/09/08
1990
Java 常用类
String a="hello"+"abc";//==>优化等价 String a="helloabc";
用户9615083
2022/12/25
6490
Java 常用类
Spring5 入门案例
# Spring5 入门案例 下载Spring5 案例演示 # 下载Spring5 使用Spring稳定版本5.2.6 下载地址repo.spring.io (opens new window) 第一次访问速度有点慢,耐心等待。 下载完毕 # 案例演示 打开idea,创建普通Java工程 导入Spring5相关jar包 或者使用maven引入相关依赖 <dependencies> <dependency> <groupId>or
用户9615083
2022/12/25
4210
Spring5 入门案例
剑指Java-常用类
​ 是一套被反复使用的代码设计经验总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性,Java常用的设计模式有23种
上分如喝水
2021/08/16
9430
剑指Java-常用类
Java基础-基本数据类型之间的转换
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/11/12
5450
java基础学习_常用类04_正则表达式、Math类、Random类、System类、BigInteger类、BigDecimal类、Date和DateFormat类、Calendar类_day14总
============================================================================= ======================
黑泽君
2019/02/25
6730
java基础学习_常用类04_正则表达式、Math类、Random类、System类、BigInteger类、BigDecimal类、Date和DateFormat类、Calendar类_day14总
Java学习笔记——Java常用类
String是一个final类,代表不可变的字符序列,底层使用char[]存放。一个字符串对象一旦被配置,其内容是不可变的。
梦飞
2022/06/23
4580
Java 基础知识点(必知必会其一)
如何将字符串转换为数字? 2.如何将数字转换为十六进制字符串? 1 package Day_2; 2 /** 3 * @author Administrator 4 * 功能: 如
Gxjun
2018/03/26
1.1K0
2013第四届蓝桥杯Java组省赛题解析
2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 ​第五题:前缀判断 第六题:三部排序 ​第七题:错误票据 第八题:翻硬币 第九题:带分数 第十题:连号区间数 第一题:高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天
红目香薰
2022/11/29
3660
2013第四届蓝桥杯Java组省赛题解析
新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal
正确的字符串格式规则。 常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。
全栈程序员站长
2022/08/15
3360
新手小白学JAVA 正则表达式 包装类 自动装箱/自动拆箱 BigDecimal
Java-常用类
哈喽!大家好,我是小简。今天开始学习《Java-常用类》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!
小简
2023/01/04
3960
Java-常用类
【15】JAVASE-常用工具类【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
1950
【15】JAVASE-常用工具类【从零开始学JAVA】
Java匹马行天下之JavaSE核心技术——工具类
Byte 类将基本类型 byte 的值包装在一个对象中。一个 Byte 类型的对象只包含一个类型为 byte 的字段。 
泰斗贤若如
2019/06/18
6070
Java日常开发的21个坑,你踩过几个?
最近看了极客时间的《Java业务开发常见错误100例》,再结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读~
捡田螺的小男孩
2020/12/29
1.4K0
Java日常开发的21个坑,你踩过几个?
大部分Java程序员都会忽略的几个问题
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
Java技术江湖
2019/09/24
5900
大部分Java程序员都会忽略的几个问题
Java常用类应用详解
可以通过图查询到其含有的字段和方法,jump to source 可以查看到源码。
timerring
2023/05/01
5030
Java常用类应用详解
【Java面试题系列】:Java基础知识面试题,看这一篇就够了
参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定要不要继续此次面试,如果答的不好,有些公司可能会直接说“技术经理或者总监在忙,你先回去等通知吧”,有些公司可能会继续面试,了解下你的项目经验等情况。
用户5546570
2019/06/06
5080
花了几个小时总结了一些容易出错的 Java 知识点
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
Java_老男孩
2019/12/19
5760
深入剖析Java中的装箱和拆箱
自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。
哲洛不闹
2018/09/14
5850
深入剖析Java中的装箱和拆箱
相关推荐
线上问题排查总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档