列表和元组

都是用一个元素,可以表示很多数据

不同的是,列表是可变的,创建完后可以随时更改
而元组是不可变的,想要更改元素只能重新创建一个新的

列表

创建方法

python中有两种创建列表的方法

a = []
a = list()

可以在[]中指定列表的初始值

a = [1, 2, 3]

列表和java中的数组不同,python的列表可以存储不同类型的数据

a = [1, "hello", 1.0, True, [1, 2, 3]]

列表的访问

可以直接用print(a)来打印列表中的内容

pirnt(a)

还可以通过下标,来访问列表的指定位置的内容,下表从0开始,到列表的长度 - 1

print(a[1])

如果传入的是负数,例如-1,就相当于len-1

print(a[-1] == a[len - 1])

可以使用python的内建函数len()来获取列表的长度

print(len(a)

切片

切片操作是取出列表中一部分元素,也就是一个子列表

a = [1, 2, 3, 4]
print(a[1:3])

这样的话会打印下标为1和2的元素,也就是[1,3)区间

还可以省略边界

a = [1, 2, 3, 4]
print(a[1:])

上面这种写法就会从下标为1的元素一直打印到列表的末尾,也就是2,3,4
切片中的下标也可以输入负数,开头和结尾都省略

print(a[1:-1])
print(a[:])

切片还可以指定步长,也就是隔几个元素取一个元素,再加一个冒号,后面的数字就是步长,如果是1就相当于没设置步长,如果步长为负数,相当于从后往前取

print(a[1:10:1])
print(a[::2])

如果我们的边界设置超出了列表的长度,程序并不会报错,而是会打印到列表能打印的位置

列表的遍历

可以使用循环来遍历列表的所有元素

a = [1, 2, 3, 4]
for i in range(0,len(a)):print(a[i])

我们的列表也是一个可迭代对象,可以直接写在for循环中

a = [1, 2, 3, 4]
for i in a:print(i)

如果我们想要统一修改列表中的元素的值,则只能用第一种方法

for i in range(0, len(a)):a[i] += 1

列表的插入

使用append(),可以将内容添加到列表的末尾
需要注意的是,append并不是一个独立的函数,而是要搭配列表来使用的函数

在python中,需要和对象搭配使用的函数,称之为方法。
python中,对象就相当于变量,里面不仅可以存储数据,也可以有一些方法

a = [1, 2, 3]
a.append(4)

还可以使用insert,插入到列表的任意位置

列表名.insert(插入位置下标, 插入内容)
a = [1, 3, 4]
a.insert(1, 2) #向下标为1的位置插入2

如果插入的位置超出了列表的范围,那么将直接将元素插入到列表的末尾,而不是扩展列表到能够插入到长度

列表的查找

使用in,可以判断一个元素是否在列表中,例如下面这段代码,就是查看1是否在a列表中,结果将返回True

a = [1, 2, 3]
print(1 in a)

与之对应的,还有not in

print(1 not in a)

使用index方法,可以判断一个元素在列表中的下标是多少,如果元素不存在,不会像java一样返回-1,而是直接报错

a = [1, 2, 3]
print(a.index(2)) # 结果为1

列表的删除

使用pop(),可以删除列表的末尾元素,如果传入一个下标,那么会删除列表下标位置的元素

a = [1, 2, 3]
a.pop() # 会删除3
a.pop(1) # 会删除2

使用remove()方法,可以指定要删除的元素

a = [1, 2, 3]
a.remove(2) #删除2

列表的连接

使用+

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b

c就是[1, 2, 3, 4, 5, 6]

使用extand(),可以将后一个列表拼接到前一个列表的里面

a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)

a就变成了[1, 2, 3, 4, 5, 6]
extend方法没有返回值,只是把参数中的列表拼接到调用者的后面,如果使用c = a.extend(b),就会返回None,这是一个特殊的变量,表示空

使用+=拼接

a = [1, 2, 3]
b = [4, 5, 6]
a += b

这种方法和extend效果类似

元组

创建元组

可以使用下面两种方法创建元组

a = (1, 2, 3)
b = tuple()

元组和列表一样,可以存储不同类型的数据

元组的访问

和列表一样,用下标访问,负数代表len-1,超出下标会报错

print(a[1])
print(a[-1])

使用切片,具体规则和列表一样

print(a[1:3])
print(a[:])
print(a[::1])

元组的遍历

和列表一样

a = (1, 2, 3, 4)
for i in a:print(i)

查找元组元素

和列表一样

print(3 in a)
print(a.index(1))

拼接元组

和列表一样

a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)

需要注意的是,元组中的元素不能修改,因此不能使用下标重新赋值元组中的元素,不能append,pop,extend
这是因为,当我们使用函数进行传参时,如果用列表传过去,函数中有可能把列表中的内容修改了,而函数外部的列表中的内容也就被修改了。因此我们可以使用元组,避免修改
并且,元组是不可变对象,因此是可以哈希的(后面的博客会讲到)

Python——列表和元组相关推荐

  1. 十二、深入Python列表和元组

    @Author :Runsen 上面四篇文章总结了Python的基础. 在Pthon中数据结构是非常重要的,所以下面将深入Pyhon数据结构 Python列表和元组总结 文章目录 什么是列表和元组 列 ...

  2. python两个元组相加_《第5章 Python 列表与元组》5.1.3 序列相加(Adding)!

    <高中信息技术 Python编程> 教学案<第5章 Python 列表与元组> 5.1.3 序列相加(Adding)! 06:15 1 #使用加号可以进行序列的连接操作,输入如 ...

  3. python 列表、元组、集合、字典、循环遍历数据结构

    python 列表.元组.集合.字典.数据结构的循环(整理自python文档) 列表-list-用方括号标注,逗号分隔的一组值 list 的 方法 对list添加.插入.删除.查找.排列.翻转 lis ...

  4. 任意长度的python列表最后一个元素索引_任意长度的 Python 列表、元组和字符串中最后一个元素的下标为 ________ 。_学小易找答案...

    [填空题]已知 x = [3, 5, 7] ,那么表达式 x[10:] 的值为 ____________ . [填空题]表达式 [x for x in [1,2,3,4,5] if x<3] 的 ...

  5. 任意长度的python列表最后一个元素索引_任意长度的Python列表、元组和字符串中最后一个元素的下标为...

    [填空题]Python内置函数__用来返回序列中的最小元素 [填空题]表达式 list(range(5)) 的值为 [填空题]表达式 int(4**0.5) 的值为 [填空题]表达式 3 or 5 的 ...

  6. 任意长度的python列表_任意长度的Python列表、元组和字符串中最后一个元素的索引为...

    任意长度的Python列表.元组和字符串中最后一个元素的索引为 答:-1 什么是软件工程? 答:百度定义:软件工程是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及程序设计语言 ...

  7. python列表和元组

    python列表和元组 1.列表 列表是Python中内置的有序可变序列,列表的所有元素放在一对中括号"[]"中,并使用逗号隔开,列表中元素的类型可以相同也可以不同. (1)列表的 ...

  8. Python列表和元组的详细区别

    文章目录 Python列表和元组的详细区别 一.列表和元组的区别 二.列表(List) 三.元组(Tuple) Python列表和元组的详细区别 一.列表和元组的区别 列表是动态数组,它们可变且可以重 ...

  9. python列表与元组和java_Python列表和元组的相同点和不同点是什么

    相同点:属于有序序列.可以强制转换.使用len()统计元素个数.使用count()统计指定元素的出现次数.不同点:1.元组类型为tuple,列表类型为list:2.元组不能修改,列表可以根据索引来修改 ...

  10. c 提取引号中间的字符串_Python | 一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力. 列表.元组.字符串都属于序列 ...

最新文章

  1. 设计模式六大原则之白话讲解
  2. Python爬虫之旅_高性能异步爬虫
  3. DCMTK:使用JPEG-LS传输语法压缩DICOM文件
  4. 【机器视觉】 HDevelop语言基础(一)-基本类型和常量
  5. 搭建一个微服务商城到底可以有多快?
  6. 设计模式:工厂方法模式(C++)【简单工厂进行升级】
  7. 城市交通路网(信息学奥赛一本通-T1261)
  8. 职场人如何做好「公开表达」,提升个人影响力?
  9. C++ set简介及简单应用
  10. Linux Mint,Ubuntu 18 ,Deepin15.7 安装mysql 没有提示输入密码,修改root用户密码过程...
  11. ATP-EMTP中的LCC模块电缆线路阅读bergeron模型与JMarti模型数据卡
  12. 学习记录514@react使用antd选择器设置下拉菜单宽度
  13. 四、Sails项目的Api文档——集成Swagger解决方案
  14. 饿了么App,网易云音乐,虎牙直播
  15. python模块:Sockets阻塞和非阻塞测试
  16. 网友RHCE认证考试经历
  17. 一种用于NDN的安全的链路状态路由协议
  18. 生鲜配送企业要如何突破局限性?存在哪些弊端?
  19. ARM SIMD 指令集:NEON 简介
  20. 关于eclips的一些使用

热门文章

  1. MATLAB希尔伯特矩阵和逆希尔伯特矩阵
  2. Linux系统下怎么查询自己的ip和port
  3. 拍摄UFP 单一职责原则
  4. \u, \x,0x区别
  5. dhl软件_DHL的完整形式是什么?
  6. 【算法基础四】C语言小项目实战---通讯录管理系统(单链表)
  7. 常用的字符串函数strcpy(a,b) / strlen(a) / strcat(a,b)/ strcmp(a, b)/ strupr(a) /strlwr(a)
  8. 启动weblogic的遇见的一些问题及解决方案(环境为win 10 64位,weblogic 12.2.1)
  9. 关于LTE终端的所谓的五模、七模、十频、十一频
  10. 第六周作业(等值字串,KMP匹配,大整数相乘,最长公共子串,判断两个字符串是否匹配,最长回文子串,年号字串)