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 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

Web 自动化:一种基于 Page Object 的实现及常见异常处理

Page Object 设计模式是 Selenium 官网推荐的一种自动化构建模式。PageObject 设计模式对网页进行一个简单抽象,将每个页面设计成一个类...

1600
来自专栏十月梦想

console.log新玩法

console.log支持多样化玩法,这里以console.log的css内容输出为例,也就是console.log()输入多样化内容

845
来自专栏蔡述雄的专栏

包学会之浅入浅出Vue.js:结业篇

本篇我们会详细分析下如何完成由多个组件组成一个复用组件的开发流程。

15.2K23
来自专栏图形学与OpenGL

实验1 C++函数

int main() { int total, n; cout << "Welcome to NIM. Pick a starting tot...

842
来自专栏极客编程

ECMAScript 6教程 (一)

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.co...

722
来自专栏知晓程序

「大众点评点餐」小程序开发经验 02:视图

1463
来自专栏ionic3+

safari日期转换的注意事项

考虑到苹果设备使用,所以不能忽略safari,明明早就知道要留意了,结果新的项目又忽略了,小记一下:

603
来自专栏Python小屋

Python编程一定要注意的那些“坑”(五)

已发“坑”请参考Python函数默认值参数的2个坑,Python编程中一定要注意的那些“坑”(一),Python编程中一定要注意的那些“坑”(二),Python...

2485
来自专栏.NET后端开发

ADO.NET入门教程(一) 初识ADO.NET

摘要 作为.NET框架最重要的组件之一,ADO.NET扮演着应用程序与数据交互的重要的角色。本文将从宏观的角度来探讨ADO.NET,和大家一起了解ADO.NET...

36110
来自专栏pangguoming

全面理解面向对象的 JavaScript

前言 当今 JavaScript 大行其道,各种应用对其依赖日深。web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而...

35410

扫码关注云+社区