[oeasy]python090_列表_构造_范围_range_start_end_step_步长

简介: 本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。

列表_构造_范围_range_start_end_step_步长

回忆

  • 上次 学习了 list的新方法
  • remove 删除
  • 需要把被删除的列表项 作为参数

  • 有没有快速 生成列表的方法呢?

从空列表增加列表项

my_list = []
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list
  • 用 append方法
  • 为 空列表 增加 列表项

直接赋值

  • 也可以将列表[4, 5, 6]
  • 直接赋给 my_list
my_list = [4, 5, 6]
my_list
  • my_list原来的值[1, 2, 3]
  • 被覆盖掉了

  • 如果我要一个 从0到100的 列表 呢?
  • 可以用循环完成 追加过程吗?

循环追加

my_list = list()
for num in range(1, 101):
    my_list.append(num)
  • 追加成功

  • 列表啥样呢?
my_list
  • 目标达成

  • 具体应该如何理解呢?

求助

help(range)
  • 查看文档

  • range的构造函数
  • 有3个参数

range

  • 直接使用list(range(101))

  • range 是一个内置的类

动手

  • 如果只有一个参数
  • 参数为 结束值(stop)
  • 开始值 从默认的0 开始
  • 到 stop 结束
  • 包括开始的0
  • 不包括结束值
  • 前闭后开[0,stop)

  • 这是一个 5个元素的列表
  • 列表项 都是 整数类型

start

  • range 可以设置
  • 起始点 start
  • 比如从 100 开始

  • 如果start 和 stop
  • 前后颠倒会如何?

  • 因为 默认步长 是 1
  • 无法从 5 到 1

  • 返回结果是空列表
  • 如果 想从5到1呢?

设置step

num_list = list(range(5, 0, -1))
print(num_list)
  • 让 步长step
  • 从默认的1
  • 变成 -1
  • 从大变小

  • 步长值为负数
  • 怎么理解?

负数

  • step 可以是负数
  • 递减等差数列
  • 倒着走
  • 下楼梯

  • 开始值 和 结束值
  • 可以 都是负数

  • 回顾range参数
  • 1个参数
  • 2个参数
  • 3个参数

1个参数

  • 只有结束值(stop) 为 10
  • 开始值(start) 为 默认的 0
  • 步长值(step) 为 默认的 1

  • 如果有两个参数呢?

2个参数

list(range(10))
list(range(0, 10))
list(range(1, 10))
  • 两个参数
  1. 开始值值(start)
  2. 结束值(stop)

  • 步长值(step) 为 默认的 1
  • 往上走一步

3个参数

  • 三个参数
  1. 开始值(start)
  2. 结束值(stop)
  3. 步长值(step)

  • 还是前闭后开的范围
  • 累加的步长值 不是1
  • 而是 step

  • 步长超大会如何?

步长超大

  • 前闭 还是有的
  • 步长太大了
  • 一下子加到了 21
  • 超过了结束值 10

  • 所以这个容器中
  • 只有一个列表项 1
  • range函数支持小数么?

尝试

  • 结果 range函数
  • 不支持 小数 作为参数

  • 为什么不支持呢?

定义

  • 在文档 查看 range 定义

  • 开始值和结束值都应该是整数
  • 才能返回整数序列

  • 尝试 直接使用小数 作为参数
  • 报错!
  • 说明他确实只能支持整数参数
  • 如果 想把小数
  • 放列表里 呢?

直接做

  • 这么 直接硬上
  • 是不行的

  • 既然可以把0到4放进去
  • 就可以把0 到 0.4 放进去

小数

  • 方法是有的
  • 多多尝试
float_list = []
for num in range(0, 5):
    float_list.append(num / 10)
print(type(float_list))
print(float_list)
  • 编程 就得多动手

  • 了如指掌
  • 才有自信
  • 这数字列表 有什么具体应用么?

等宽字月份

  • 注意这两种表示的不同
  • 1月

  • ㋀ 可以和 ㋋ 等宽
  • 让画面整齐
  • 所以叫做等宽字体

  • 可以把等宽字体的月份都列出来吗??

月份等宽字体

chr(12992 + 11)
  • 可以通过 chr(12992 + 11)得到

  • 12个月确实挨着
  • 可以把他们做成列表吗?

尝试构造列表

mon_list = []
for n in range(12992, 12992 + 12):
    mon_list.append(chr(n))
print(mon_list)
  • 尝试构造

  • 执行结果

  • 月份附近还有什么好玩的呢?

总结

  • 这次 了解 列表生成
  • 可以通过range函数 返回值
  • 得到列表
  • 数值序列 range
  • start、stop、step
  • 负数
  • 前闭后开

  • 找到了所有月份的列表

相关文章
|
3月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
289 1
|
3月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
439 116
|
3月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
388 109
|
3月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
468 119
|
4月前
|
缓存 监控 数据可视化
微店item_search - 根据关键词取商品列表深度分析及 Python 实现
微店item_search接口可根据关键词搜索商品,返回商品信息、价格、销量等数据,适用于电商检索、竞品分析及市场调研。接口需通过appkey与access_token认证,支持分页与排序功能,Python示例代码实现调用流程,助力商品数据高效获取与分析。
|
3月前
|
开发者 Python
Python列表推导式:优雅与效率的完美融合
Python列表推导式:优雅与效率的完美融合
344 104
|
3月前
|
Python
Python列表推导式:优雅与效率的艺术
Python列表推导式:优雅与效率的艺术
316 99
|
3月前
|
数据处理 Python
解锁Python列表推导式:优雅与效率的完美融合
解锁Python列表推导式:优雅与效率的完美融合
291 99
|
3月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
449 95
|
4月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
507 99

推荐镜像

更多