Python列表与元组

阅读文本大概需要 4.8 分钟

写在前面

经过一周的学习与试错,到现在基本上已经能够熟练掌握公众号的各项功能以及排版上的一些技巧了。从开始时的笨手笨脚,到现在略微的小有成就,说明其实每一天都在进步。

也许每一天的进步看起来可能微乎其微,但是坚持下来呢?如果以月、以年、以一生为单位的话会怎样呢?

今天在这里立个flag,一方面督促自己更好地坚持创作分享,和大家一起见证此公号的成长;另一方面也希望能给大家带来一些思考,开始着手于做自己感兴趣的事情。

分享给大家一句话:「当你决定好要做一件事情的时候那就开始吧,不论刚起步的姿势多么难看,多么踉踉跄跄,迈出去你就能看到更大的世界,你就能在前进的道路上更好地调整自己,过程可能漫长艰辛,但其中并不缺乏美好与惊喜。」

这是我这几天感触最深的一点,所以希望大家朝着自己的兴趣勇敢地迈出第一步吧,趁年轻,多努力,多试错。「Just do it !」

接下来开始今天的学习,昨天分享了Python字符串与循环的知识,今天我们来学习列表与元组的使用。另外,昨天已经有几位读者与我讨论了练习题的答案,这是一种很好的学习状态,学以致用,才能学有所成,所以欢迎大家积极地留言打卡,练习题的答案可以私发我,一起交流指正,共同提升。

01

代码块与笔记

列表 list

1

列表简介

  • 列表是有序的序列,可以包含任意的Python数据类型,如字符串、数字、布尔、列表、元组等
  • 列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加、修改、删除、排序等操作

2

常用操作

  • 定义与遍历列表、存储的数据类型与索引、组合、重复、截取、包含、增删改查、长度、最值、排序等

1定义与遍历列表

# 定义列表

list1 = [1, 2, 3, 4, 5]

# 遍历列表

for i in list1:
    print(i)

2存储的数据类型与索引

list2 = [1, "2", True, [1, 2], (1, 2)]

# 索引从0开始,注意不要越界

print(list2[3])  # 结果:[1, 2]

组合、重复、截取、包含2

list1 = [1, 2, 3, 4, 5]
list2 = [1, "2", True, [1, 2], (1, 2)]

# 列表组合

list3 = list1 + list2
print(list3)

# 列表重复

print(list1 * 3)

# 截取,包含头不包含尾

print(list1[2:4])  # [3, 4]

# 判断元素是否在列表中

print(1 in list1)  # True

4添加,清楚两种方式区别

list2 = [1, "2", True, [1, 2], (1, 2)]

# 将集合作为一个整体加入

list2.append([3, 4, 5])

print(list2[5])  # [3, 4, 5]

# 将集合中的每一个元素添加进去

list2.extend([6, 7, 8])

print(list2[6])  # 6

print(list2[8])  # 8

4删除、清空

list2 = [1, "2", True, [1, 2], (1, 2)]

# 移除指定下标对应的元素

pop = list2.pop(2)

print(pop)  # True

# 移除对应元素

list2.remove(1)

print(list2[0])  # 2

# 清空列表

list2.clear()

print(list2)  # []

# 删除列表

del list2

6修改与查询

list1 = [1, 2, 3, 4, 5]

# 修改列表

list1[0] = 11

print(list1[0])  # 11

# 通过元素查找下标

# 查找元素3,从下标2到4

i = list1.index(3, 2, 4)

print(i)  # 下标为2

长度、最值、排序等7

list1 = [1, 2, 3, 4, 5]

# 列表长度

print(len(list1))

# 获取列表中最大值

print(max(list1))  

# 获取列表中最小值

print(min(list1))  

# 倒叙,反转

list1.reverse()
print(list1)

# 排序,升序

list1.sort()
print(list1)

# 查看元素在列表中出现的次数

print(list1.count(1)) 

拷贝,清楚两种方式区别8

list1 = [1, 2, 3, 4, 5]

# 浅拷贝
# list1和list2指向同一块内存

list2 = list1
list2[1] = True

print(list1, list2, id(list1), id(list2))

# 深拷贝 内存的拷贝
# list2指向了另一块内存

list2 = list1.copy()
list2[1] = False

print(list1, list2, id(list1), id(list2))

元组tuple

1

元组简介

  • 元组与列表类似,有序序列,不同之处在于元组的元素不能修改
  • 表示上元组使用小括号,列表使用方括号

2

常用操作

  • 元组和列表相似,如:存储的数据类型与索引、组合、重复、截取、包含、最值、长度等属性方法都相同,大家可以在IDE里试一下
  • 由于元组一旦初始化后就不可变,所以添加、删除、修改元组元素、倒叙、排序、清空等方法是没有的的,总结一句话为只要使元组元素发生改变的方法都没有

9创建元组

# 创建只有一个元素的元组

tuple1 = (1,)                   

tuple2 = (False, 2, "Iu", [3, 4, 5])

print(tuple2[3])

10修改元组中元素的元素

# 元组中列表元素的元素可以修改

tuple2 = ("Iu", [3, 4, 5])

# -1 最后一位元素下标

tuple2[-1][2] = 6  

t = tuple2[-1][2] = 6

print(t)  # 6 

列表与元组互转11

l = [1, 2, 3]

t = tuple(l)

# (1, 2, 3)
print(t)

l = list(t)

# [1, 2, 3]
print(l)

02

练习题

今天的练习主要是要求把列表和元组的方法熟练掌握,同时把昨天的练习题再温习一遍,之后我们慢慢会做一些比较难的练习,大家一起加油!

好了,今天的分享就到这了,觉得写得不错的,点赞转发支持下。(同时在这里温馨提醒下,安卓手机代码块可以左右滑动,苹果手机可能不支持,超出屏幕会自动跳到下一行)

原创不易,感谢分享

原文发布于微信公众号 - Python梦工厂(AzMark950831)

原文发表时间:2018-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木宛城主

曾今的代码系列——自己的分页控件+存储过程实现分页

项目里面的测试代码,仅供参考 LoginByAjax <title>Ajax登陆</title> <script src="Scripts/c...

1855
来自专栏张善友的专栏

通过SmtpClient发送Exchange会议邮件

看到C#中调用Outlook API 发起会议 ,这个完全可以用SMTP方式实现的,下面我的项目中使用的代码: 对于.NET而言,从2.0开始,发邮件已经是一件...

1939
来自专栏跟着阿笨一起玩NET

从sql server 中读取二进制图片

391
来自专栏c#开发者

about store RecordField submit emptystring issue

operate screenshot When click save button submit to change,trace store before...

3447
来自专栏自由而无用的灵魂的碎碎念

小项目分享---混色器

编写代码的同志们一般懂美术的就少了,偶也是,什么色轮、三维加色等等。虽然看过一些书籍(如内田广由纪的《配色基础原理》),不过还是一知半解的。

973
来自专栏王磊的博客

MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql....

3629
来自专栏james大数据架构

CSS好看的按钮

好看的按钮 <style> .btn { BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDE...

1997
来自专栏码匠的流水账

zuul自定义SimpleHostRoutingFilter

zuul的SimpleHostRoutingFilter主要用来转发不走eureka的proxy,里头是使用httpclient来转发请求的,但是有时候我们需要...

1292
来自专栏hbbliyong

socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅

1.socket 通信传输汉字的方法:Encoding.GetEncoding("GB2312").GetString(Receivebyte) 发送接收都这样...

2737
来自专栏我和未来有约会

Silverlight制作逐帧动画 v2 - part2

Silverlight制作逐帧动画 v2 - part2 在这里完善了一下算法,加入了fps的机制进去。 private string[] ...

1886

扫码关注云+社区