for循环

1.for循环遍历列表

chars=['q','w','e','r','t']
for char in chars:print(char)

这三行代码中,for循环会依次读取列表中的元素,并存储到循环变量char中,最后打印

注意点

1.循环变量名称最好和列表名称呈现单复数关系,比如char 和 chars、cat和cats等,便于识别(只是个命名规范)

2.循环语句最后的那个冒号(:)不能省

2.range()函数

for num in range(0,6):print(num)

range()函数的打印范围是左闭右开(从第一个数开始打印,打印到第二个数时停止,不包括第二个数)

3.用list()和range()函数创建数字型列表

nls=list(range(0,10))
for nl in nls:print(nl)print(nls)

range()函数还可以指定步长,比如,打印0-10中的所有偶数

print(list(range(0,12,2)))

range(0,12,2)从0开始,然后不断+2,直到大于等于12为止,同样左闭右开

生成偶数平方的列表,同时打印最值和列表总和

squares=[]
for square in range(0,11,2):squares.append(square**2)
print(squares, min(squares), max(squares), sum(squares))

上述代码用了三行生成了一个列表,如果用列表解析式的话,只需要一行

squares1=[value**2 for value in range(0,11,2)]
print(squares1)

for value in range(0,11,2)将循环变量提供给value**2, 从而生成squares1

切片

切片就是列表元素中的一部分

print(squares1[:]])#打印出所有列表元素
print(squares1[0:3])#打印出索引为0,1,2的三个元素,不包括3
print(squares1[1:4])#打印出索引为1,2,3的三个元素,不包括4
print(squares1[:4])#从头打印出列表元素,不包括索引4
print(squares1[2:])#从索引2的元素打印到最后
print(squares1[-3:])#从倒数第三个元素打印到最后
print(squares1[:-2])#从头打印到倒数第三个元素,不包括倒数第2个元素print(squares1[0:3:2])#从零不断+2打印元素,直到大于等于三为止(不包括索引为3的元素)
print(squares1[1:4:2])
print(squares1[:4:2])#从零不断+2打印元素,直到大于等于4为止(不包括索引为4的元素)
print(squares1[2::2])#从2不断+2打印元素,如果最后一个元素不被跳过,打印,否则不打印
print(squares1[-3::2])#从倒数第三个元素不断+2打印元素,如果最后一个元素不被跳过,打印,否则不打印
print(squares1[:-2:2])#从零不断+2打印元素,直到大于等于倒数第二个元素的索引为止(不包括倒数第二个的元素)

其实通过实验可以发现,切片的性质和range函数非常类似,都是左闭右开(如果冒号两边都有数字,不包含冒号右边索引所代表的元素)

添加步长之后,性质也和range是一样的,不断+步长,直到大于等于冒号右边的索引为止(不包括索引所表示的元素)

遍历切片

切片虽然是列表的一部分,但是也是列表,所以就能遍历,也能用列表解析式生成新的列表

for square in squares[1::2]:print(square)

newlist=[square**2 for square in squares[1::2]]
print(newlist)

列表的复制

列表的复制有两种方式,第一种是使用切片赋值,第二种是使用列表名称赋值,两种方式的区别在哪?

newlist1=newlist[:]
newlist2=newlist;
print(newlist, newlist1, newlist2);

从上面的结果上来看,我们看不出任何却别,但是,当我们修改newlist或newlist2中的元素时,情况发生了变化

newlist1=newlist[:]
newlist2=newlist;
print(newlist, newlist1, newlist2);
newlist[0]=2
print(newlist, newlist1, newlist2);
newlist2[0]=39
print(newlist, newlist1, newlist2);

此时,无论修改newlist2和newlist中的哪一个,newlist2和newlist都同时发生了变化,而newlist1没有任何变化

所以

当使用原来列表的切片来将整个列表复制到一个新的列表的时,新的列表是原来列表的副本,新的列表和原来列表值虽然相同,但是是两个不同的列表,不同的变量

但是,当使用列表名来复制整个列表到一个新的列表时,两个列表名都指向同一个列表,所以,当修改其中一个的列表时,另一个列表也跟着被修改

元组

元组和列表只有两点不同:

1,元组使用的是小括号()括起来,而列表使用的是中括号[]。

2,元组中的元素不能被修改,列表可以。

ts=(1,2,3,4,5)
print(ts)
ts[2]=10

当修改元组中的元素时,会报错

虽然元组中的元素不能被修改,但是元组可以被整体修改(重新赋值)

ts=(1,2,3,4,5)
print(ts)
ts=(10,20)
print(ts)

ts变量被重新赋值成其他元组

参考书籍:《Python编程从入门到实践》

欢迎大家评论交流,作者水平有限,如有错误,欢迎指出

Python知识点3——列表操作相关推荐

  1. python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...

    这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...

  2. Python 二维列表操作

    Python 二维列表操作 创建二维列表对象 初始化一个2*3尺寸大小的全零二维列表 获取二维列表行元素的个数 获取二维列表总元素个数 今天介绍一下 Python中二维列表的一些操作. 创建二维列表对 ...

  3. 【Python】Python中的列表操作

    Python的列表操作可谓是功能强大且方便(相对于Java)简单.常规的操作就不说了(这不是一个入门教程),介绍几个很有特点的例子 添加 # 追加到结尾(append) li = [1, 2, 3, ...

  4. python中的列表操作

    列表:(list) 容器类型:某个对象包含对其它对象的引用,则将其称为容器. 列表可以包含任何种类的对象(数字.字串.甚至嵌套其他列表,可以嵌套元组) 内部包含:任意对象的有序集合,通过索引访问其中的 ...

  5. python心得-字符串列表操作

    知识点概要: 一.变量值的可变不可变类型 不可变:数字型,字符串型 可变:列表,字典 二.字符串的相关操作 1.字符串是有索引的,可以按照字符串来实现正取和反取,只能取,不能改 2.切片:str[起始 ...

  6. Python知识点2——列表基础

    列表 1.列表与访问 用方括号[]括起来的就是列表,并且用逗号分割其中的元素 类似于C语言中的数组,采用下标方式进行访问,索引从0开始 l=['a','b','c','d'] print(l, l[0 ...

  7. Python知识点笔记-列表list、元组tuple和dict类型

    知识点主要范围:列表list.元组tuple和dict类型 列表list和元组tuple 列表list用[]包围起来,里面可以是各种类型的组合: L[-1]表示列表L的倒数第一个元素,-2表示倒数第二 ...

  8. python列表操作函数大全_Python列表操作函数

    列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了. 对于Python语言而言,开发 ...

  9. python100例详解-Python基础之列表常见操作经典实例详解

    本文实例讲述了Python基础之列表常见操作.分享给大家供大家参考,具体如下: Python中的列表操作 列表是Python中使用最频繁的数据类型[可以说没有之一] 一组有序项目的集合 可变的数据类型 ...

最新文章

  1. ROS知识(4)----初级教程之常见问题汇总
  2. Asp.Net下通过切换CSS换皮肤
  3. wireshark无权限
  4. Golang学习---常用库
  5. 对某机构为“转移内部矛盾”而嫁祸于我们的事件之真相大起底
  6. Linux环境变量的设置和查看
  7. Cortex-M0 (2)---Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别
  8. 保存文件_正确保存Zbrush文件
  9. 传输线理论 1/4波长阻抗变换器的分析匹配
  10. git回退到某个commit
  11. 多项式时间 P问题 NP问题
  12. pycharm运行python程序没有解释器怎么办
  13. mysql笛卡尔积查询很慢_浅谈MySQL使用笛卡尔积原理进行多表查询
  14. 【Mysql索引】二叉树、红黑树、B树、B+树
  15. DOM节点类型及其属性和方法
  16. AndroidApp之图书管理系统(一)
  17. initial-scale
  18. 樊登读书会终身成长读后感_终身成长读后感
  19. Matlab基础编程知识处理(2)(数学建模中模型的模拟与数据提取,本篇全干货)
  20. 全志D1开发板 XR829蓝牙 Can‘t get device info: No such device 自我分析及解决方案

热门文章

  1. 支付接口教程,详解支付宝接口(二)
  2. FFmpeg-20160422-snapshot-bin
  3. C++中友元类使用场合
  4. 路由器NAT网络地址转换
  5. 大数据时代的网络视频营销
  6. yii redirect
  7. target与currentTarget的区别?
  8. 见了很久没见的高中同学,真好
  9. 20200605笔记
  10. HttpWebRequest在GetResponse时总是超时