前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习-Chapter4 操作列表

Python学习-Chapter4 操作列表

作者头像
OliverHan
发布2023-02-27 13:56:09
2420
发布2023-02-27 13:56:09
举报
文章被收录于专栏:阿狐和柴柴

Chapter4 操作列表

4.1 for循环的使用

4.1.1 这是一个利用循环打印的例子:

代码语言:javascript
复制
a = ['a','b','c','d']
for an in a:   #冒号必不可少
    print(an)
代码语言:javascript
复制
a
b
c
d

4.1.2 利用for循环进行更多操作的例子:

代码语言:javascript
复制
a = ['a','b','c','d']
for an in a:   #冒号必不可少
    print(f"{an.title()} is uppercase of {an}")
    print("next char is:\n")
代码语言:javascript
复制
A is uppercase of a
next char is:

B is uppercase of b
next char is:

C is uppercase of c
next char is:

D is uppercase of d
next char is:

结果说明: 缩进的都属于for循环 an相当于计数器变量作索引的a[i]。

4.1.2 在for循环结束后执行操作

代码语言:javascript
复制
a = ['a','b','c','d']
for an in a:   #冒号必不可少
    print(f"{an.title()} is uppercase of {an}")
print("test end.")  #当缩进没有的时候,默认为在for循环之外。
代码语言:javascript
复制
A is uppercase of a
B is uppercase of b
C is uppercase of c
D is uppercase of d
test end.

4.2 避免缩进错误

4.2.1 忘记缩进

代码语言:javascript
复制
a = ['a','b','c','d']
for an in a:
print(an)
代码语言:javascript
复制
  File "/var/folders/1j/k13fttf13b5d6j8_m4q12rgr0000gn/T/ipykernel_49995/1502029580.py", line 3
    print(an)
    ^
IndentationError: expected an indented block

当没有缩进时,for循环找不到循环体,会报错。

原则:需要进循环体的加缩进,不需要的不加缩进,没有for循环不缩进,for循环不忘冒号

4.3 创建数值列表

4.3.1 range()和list()

range()的三个用法:

range(x) 和 range(0,x)一样 range(x,y) range(x,y,z)

代码语言:javascript
复制
list(range(6)) #相当于默认从0开始数6个
代码语言:javascript
复制
[0, 1, 2, 3, 4, 5]
代码语言:javascript
复制
list(range(0,6)) #指定从0开始数6个
代码语言:javascript
复制
[0, 1, 2, 3, 4, 5]
代码语言:javascript
复制
list(range(3,12)) #相当于从3到12,步长为1,注意右括号12实际数到11
代码语言:javascript
复制
[3, 4, 5, 6, 7, 8, 9, 10, 11]
代码语言:javascript
复制
list(range(3,12,2))#步长为2
代码语言:javascript
复制
[3, 5, 7, 9, 11]

4.3.2 用range()创建数字列表

打印1-10的偶数
代码语言:javascript
复制
even_num = list(range(2,11,2))  #注意,左边从2开始,右边界限为11(左面取得到,右面够不到)
print(even_num)
代码语言:javascript
复制
[2, 4, 6, 8, 10]
创建一个列表,包含1-10的平方
代码语言:javascript
复制
square_list = [] #先创建一个空列表

for value in range(1,11):
    
    square = value ** 2 #每一次线计算一下平方的值,再append到list里面
    square_list.append(square)
    #上面两行可以写成: spuare_list.append(value ** 2)
    
print(square_list)
代码语言:javascript
复制
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4.3.3 对数字列表执行简单的统计计算

找数字列表(元素为数字) 的 最大值、最小值、总和
代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]

print(max(digits))

print(min(digits))

print(sum(digits))
代码语言:javascript
复制
9
0
45

4.3.4 列表解析

代码语言:javascript
复制
#上面输入平方数的例子还可以用两行代码解决:
square_list = [value ** 2 for value in range (1,11)]
#本质是把一个列表转换成另一个列表
#格式:列表1 = [表达式 for 变量 in 列表2]
print(square_list)
代码语言:javascript
复制
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4.4 使用列表的一部分

使用切片

代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]

print(digits[0:3])
代码语言:javascript
复制
[1, 2, 3]
切片使用方法: 列表[起点:终点]

如果写成 列表[:终点],起点默认索引为0; 如果写成 列表[起点:],则默认重点到列表最后一个

如何打印最后三个元素?
代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]

print(digits[-3:])
代码语言:javascript
复制
[8, 9, 0]

列表[-倒数几个:]

每间隔两个元素就提取一个(在选取范围内)
代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]

print(digits[0:10:2])
代码语言:javascript
复制
[1, 3, 5, 7, 9]

[起点:重点:步长],步长不输入(没有第二个冒号)默认为1.

遍历切片:使用for循环+切片

代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]
print("No 5 to No 9 number in my digits are:\n")
for digit in digits[4:8]:        #利用单复数区别 列表 和 an
    print(digit)#注意这里打印的是变量
代码语言:javascript
复制
No 5 to No 9 number in my digits are:

5
6
7
8

复制列表 (使用切片)

代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]
copy_digits = digits[:]

digits.append(10)
copy_digits.append(11)
print(digits)
print(copy_digits)
代码语言:javascript
复制
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 11]
注意语法: 列表1 = 列表2[:]

这样才是两个列表

如果没有切片直接复制

则两个列表指向同一个储存空间,本质上是一个列表

代码语言:javascript
复制
digits = [1,2,3,4,5,6,7,8,9,0]
copy_digits = digits

digits.append(10)
copy_digits.append(11)
print(digits)
print(copy_digits)
代码语言:javascript
复制
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11]

4.5 元组-不可改变的列表

定义语法:

元组名 = (元素1,元素2,…)

访问和列表相同

代码语言:javascript
复制
a = (30,40)
print(a[0])
print(a[1])
代码语言:javascript
复制
30
40

不能改变:指不能单独给其内元素赋值。(报错)

代码语言:javascript
复制
a = (30,40)
a[0] = 1
代码语言:javascript
复制
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

/var/folders/1j/k13fttf13b5d6j8_m4q12rgr0000gn/T/ipykernel_53119/1136073212.py in <module>
      1 a = (30,40)
----> 2 a[0] = 1


TypeError: 'tuple' object does not support item assignment

遍历元组-和for循环

代码语言:javascript
复制
a = (30,40,50)

for an in a:
    print(an)
代码语言:javascript
复制
30
40
50

修改元组变量-重新定义

代码语言:javascript
复制
a = (30,40)
print(a)

a = (40,50)
print(a)
代码语言:javascript
复制
(30, 40)
(40, 50)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Chapter4 操作列表
    • 4.1 for循环的使用
      • 4.1.1 这是一个利用循环打印的例子:
      • 4.1.2 利用for循环进行更多操作的例子:
      • 4.1.2 在for循环结束后执行操作
    • 4.2 避免缩进错误
      • 4.2.1 忘记缩进
      • 原则:需要进循环体的加缩进,不需要的不加缩进,没有for循环不缩进,for循环不忘冒号
    • 4.3 创建数值列表
      • 4.3.1 range()和list()
      • 4.3.2 用range()创建数字列表
      • 4.3.3 对数字列表执行简单的统计计算
      • 4.3.4 列表解析
    • 4.4 使用列表的一部分
      • 使用切片
      • 遍历切片:使用for循环+切片
      • 复制列表 (使用切片)
    • 4.5 元组-不可改变的列表
      • 定义语法:
      • 遍历元组-和for循环
      • 修改元组变量-重新定义
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档