Python学习笔记(3)-操作列表
来源:互联网 发布:智慧办公软件下载 编辑:程序博客网 时间:2024/05/17 08:16
for循环
注意:只要是迭代Iterable
对象,都可被for ...in...
循环,例如列表,元组,字典,字符串
1.for循环的简答使用:
代码:
jobs = ['teacher','doctor','editor']for job in jobs: #注意此处的冒号 print(job) #循环体要缩进(4个空格) print(job + ' is a very good job.') #相同缩进的代码为统一代码块 #不同语句块最好隔一空行print('\nover') #for循环结束后执行(缩进不同)
结果:
teacherteacher is a very good job.doctordoctor is a very good job.editoreditor is a very good job.over
tip:如何判断是否是迭代对象,可使用collections
模块的Iterable
类型
代码:
from collections import Iterableprint(isinstance(123, Iterable)) # 整数不是可迭代对象print(isinstance('abc', Iterable))print(isinstance(['a', 'b'], Iterable))print(isinstance(('a', 3), Iterable))print(isinstance({'name': 'Tom', 'age': 18}, Iterable))
结果:
FalseTrueTrueTrueTrue
2.for循环还可引用多个变量
for x, y, z in [(1, 1, 3), (2, 4, 4), (3, 9, 3)]: print(x, y, z)
结果:
1 1 32 4 43 9 3
之后的字典即可用这种方法访问
3.对list
实现下标和值的循环,可用enumerate
函数,可和之后的for循环访问字典对比理解。
代码:
for index, value in enumerate(['A', 'B', 'C']): # 类似dict.items print(index, value)
结果:
0 A1 B2 C
创建数值列表
1.函数range()
的使用
代码:
for number in range(0,5): #从第一个参数开始,到第二个参数前结束 等同于 range(5) print(number)
结果:
01234
代码:
for number in range(0,11,2): #从第一个参数开始,到第二个参数前结束,每次循环+2 print(number)
结果:
0246810
- 使用
range()
创建数字列表,通过list()
函数 - 数字简单的统计计算
min()
max()
sum()
代码:
numbers = list(range(2,12,4))print(numbers)
结果:
[2, 6, 10]
e.g. 创建列表,包含前10个数的平方
代码:
numbers = []for number in range(1,11): numbers.append(number**2)print(numbers)print(min(numbers))#最小值print(max(numbers))#最大值print(sum(numbers))#和
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]1100385
2.列表解析
代码:
result = [x ** 2 for x in range(1, 11) if x % 2 == 0]print(result)
结果:
[4, 16, 36, 64, 100]
还可使用双层循环
代码:
result = [m + n for m in 'ABC' for n in 'DEF']print(result)
结果:
['AD', 'AE', 'AF', 'BD', 'BE', 'BF', 'CD', 'CE', 'CF']
切片
切片即列表的部分元素,如下
代码:
gourds = ['dawa','erwa','sanwa','siwa','wuwa','liuwa','qiwa']print(gourds[0:0])#从下标0开始,到下标0前结束print(gourds[1:2])#从下标1开始,到下标2前结束print(gourds[1:-1])#从下标1开始,到倒数第一个前结束print(gourds[:-2])#从开始,到倒数第二个前结束print(gourds[1:])#从下标1开始,到结束print(gourds[:5:2]) #从下标0开始,到5前结束,每2个取一次值
结果:
[]['erwa']['erwa', 'sanwa', 'siwa', 'wuwa', 'liuwa']['dawa', 'erwa', 'sanwa', 'siwa', 'wuwa']['erwa', 'sanwa', 'siwa', 'wuwa', 'liuwa', 'qiwa']['dawa', 'sanwa', 'wuwa']
遍历切片同遍历列表相同,可用for循环
复制列表的方法
代码:
gourds = ['dawa','erwa','sanwa','siwa','wuwa','liuwa','qiwa']fake_gourds = gourds[:]#使用切片的形式复制,从0开始到末尾gourds.append('yeye')#原列表和新列表添加不同字段打印fake_gourds.append('shejing')print(gourds)print(fake_gourds)
结果:
['dawa', 'erwa', 'sanwa', 'siwa', 'wuwa', 'liuwa', 'qiwa', 'yeye']['dawa', 'erwa', 'sanwa', 'siwa', 'wuwa', 'liuwa', 'qiwa', 'shejing']
元组和字符串也可以有切片,用法相同,字符串可用切片来截取字符,类似java
语言的substring
函数等。
元组(tuple)
列表适合存储在程序运行期间可能变化的数据,可修改,元组与列表相同,但使用圆括号,且元组的元素值(实际上是元素值的指向)不能修改.
代码:
RMB = (1,5,10,20,50,100)print(RMB[0])print(RMB[-1])
结果:
1100
元组的元素值不能直接修改
代码:
RMB[0] =3
结果:
TypeError: 'tuple' object does not support item assignment
但是可以直接重新给整个元组赋值
代码:
RMB = (1,5,10,20,50,100)RMB = (900,1)print(RMB)
结果:
(900, 1)
遍历元组同遍历列表一样,用for循环
注意:
定义只有一个数字的元组的时候不能写成RMB = (100)
,这样写容易与数学符号扩号混淆,会按照括号处理,所以定义一个数字的元组的时候加上,
(逗号)例如:RMB = (100,)
代码:
RMB = (100,)print(RMB)
结果:
(100,)
结果中也会带上逗号
如果元组中含有list
,list的值可以更改,例如:
代码:
RMB = (100, ['aaa', 'bbb'])print(RMB)RMB[1][0] = 'ccc' #元组里的list指向没有变,变得是所指向的list里存的值RMB[1][1] = 'ddd'print(RMB)
结果:
(100, ['aaa', 'bbb'])(100, ['ccc', 'ddd'])
代码格式
- 每级缩进都用4个空格
- 每行建议不超过80字符
0 0
- Python学习笔记(3)-操作列表
- Python学习笔记(3)- 列表
- Python学习笔记02-列表与操作列表
- python 学习笔记-列表
- python学习系列(二)--- 列表操作
- Python学习笔记———《列表操作》
- python学习笔记5—序列与列表的操作
- python数据结构之列表基本操作[学习笔记]
- python基础教程_学习笔记3:列表
- python学习笔记3--列表,元组
- 简明python学习笔记(九)-列表
- Python 学习笔记之列表(List)
- Python学习笔记 -- 序列(三)列表
- python学习笔记4(列表)
- Python学习笔记(2)-列表
- 操作列表(python)
- Python学习笔记之列表
- [Python]学习笔记之列表
- 通讯录
- ThinkPHP3.2.3验证码显示、刷新、校验
- C/C++的堆栈,内存分配
- 基本界面组件~TextView~EditText~Button
- 银行家算法
- Python学习笔记(3)-操作列表
- 『sklearn学习』沃德结构层次聚类的浣熊脸图像的演示
- mysql建表时报错ERROR 1286 (42000) Unknown storage engine 'MyISAM'
- 数据分页显示
- PERL各个符号代表的意思
- 【暮冬之战】考研政治
- java设计模式1
- Spring 、SpringMVC、Mybatis、MySQL、Maven、Tomcat搭建JavaWeb项目流程---学习笔记(二)新建Maven项目
- STM32 USART1 USART2 UASRT3 UART4 UART5串口通信测试程序