基本数据类型:列表

1. 列表的介绍

列表也是python的基础的数据类型之一,类似于Java中的数组一样,可以存放很多元素。列表是用括号括起来的一组数据,每个元素之间用‘,’来分割,其中元素可以是python支持的各种数据类型,创建列表的方法如下:

In [32]: l1 = [13, 56, 'python', True]      # 列表里面可以存放各种不同的数据类型(如数字、字符串等等)

In [33]: l2 = [-1, ['abc', 11.2]]           # 列表中还可以嵌套列表

In [34]: l3 = list()                        # 创建一个空列表

2. 列表的索引和切片

列表也可以和字符串一样使用索引和切片,具体使用的方法如下:

In [35]: l1[-1]                     # 列表的使用索引获取元素
Out[35]: True In [36]: l1[1:] # 跟字符串一样,列表也可以使用切片
Out[36]: [56, 'python', True] In [38]: l1[2][2:]
Out[38]: 'thon'

3. 列表的操作

  • 增加元素:增加列表元素的方法有3种

    • append: 把元素添加到列表末尾
    • insert:接收一个索引位置的参数,把元素插入到指定索引位置的前面,后面的元素往索引都加1
    • extend: 往列表里面添加多个元素,其参数必须是一个可迭代对象
In [39]: l3.append('a')

In [40]: l3.append(15)              # 把元素15添加到列表l3末尾

In [41]: l3
Out[41]: ['a', 15] In [42]: l3.insert(1, '篮球') # 在l3列表索引为1的位置插入元素'篮球' In [43]: l3
Out[43]: ['a', '篮球', 15] In [44]: l3.extend(l2) # 把列表l2中的元素添加到l3中 In [45]: l3
Out[45]: ['a', '篮球', 15, -1, ['abc', 11.2]]
  • 删除元素:删除元素也有3中方法操作

    • pop: 默认删除列表中最后一个元素,并返回删除的元素,如果指定索引则删除索引位置的元素
    • remove: 移除指定的元素
    • clear: 清空列表
In [46]: l4 = [111, 1, 23, 45, 1, -3434, 43624356, 234, 45]

In [47]: l4.pop()                       # 默认删除列表中最后一个元素
Out[47]: 45 In [48]: l4.pop(1) # 也可以删除指定索引位置的元素
Out[48]: 1 In [49]: l4.remove(1) # 删除指定的元素 In [50]: l4
Out[50]: [111, 23, 45, -3434, 43624356, 234] In [51]: l4.clear() # 清空列表 In [52]: l4
Out[52]: []
  • 修改元素
In [54]: l3
Out[54]: ['a', '篮球', 15, -1, ['abc', 11.2]] In [55]: l3[2] = '学校' # 找到元素并对重新赋值(修改) In [56]: l3
Out[56]: ['a', '篮球', '学校', -1, ['abc', 11.2]] In [57]: l3[2:] = ['老师', '学生', '校园'] # 也可以切片修改 In [59]: l3
Out[59]: ['a', '篮球', '老师', '学生', '校园']
  • 查找元素:

    • index: 使用index查找元素的索引位置
    • 使用for循环遍历列表查找
In [62]:  l3
Out[62]: ['a', '篮球', '老师', '学生', '校园'] In [63]: l3.index('篮球')
Out[63]: 1 In [64]: for i in range(len(l3)):
...: if l3[i] == '篮球':
...: print(i, l3[i])
1 篮球
  • 其他方法:列表还有其他的集中方法

    • count: 统计某个元素出现列表的个数
    • sort: 对列表做排序
    • reverse: 对列表反转排序
In [65]: l4 = [45, 43624356, -3434, 1, 45, 23, 1, 111, 45, 56, 90]

In [66]: l4.count(45)                   # 计算45在列表l4中出现的次数
Out[66]: 3 In [67]: l4.sort() # 把列表按从小到大的顺序排列 In [68]: l4
Out[68]: [-3434, 1, 1, 23, 45, 45, 45, 56, 90, 111, 43624356] In [69]: l4.reverse() # 把列表按原来的顺序倒叙排列(**没有排序的功能**) In [70]: l4
Out[70]: [43624356, 111, 90, 56, 45, 45, 45, 23, 1, 1, -3434]

基本数据类型:元组

元组跟列表非常类似,它也可以存储多个元素,也可以存放不同的数据类型的元素,但是元组最大的特征就是:元组中的元素是不可修改的,因此元组只有查询的方法,下面是元组的使用:


In [71]: t1 = ('redhat', 'centos', 'fedora', 'ubuntu') # 创建一个元组,如果是空元祖要使用`t = (,)`来创建 In [72]: t1
Out[72]: ('redhat', 'centos', 'fedora', 'ubuntu') In [73]: t1[1] # 跟列表和字符串一样,也支持索引和切片
Out[73]: 'centos' In [74]: for ele in t1: # 循环遍历元组中的元素
...: print(ele)
redhat
centos
fedora
ubuntu In [75]:

补充知识

1. range的使用

如果只是使用for循环遍历元素虽然可以取到每个元素的值,但是却没有元素的索引,如果结合range使用就会方便的多:

In [83]: t1
Out[83]: ('redhat', 'centos', 'fedora', 'ubuntu') In [84]: for index in range(len(t1)): # 通过range来创建列表和元组的索引,可以同时获取索引和元素
...: print(index, t1[index])
0 redhat
1 centos
2 fedora
3 ubuntu In [86]: for i in range(2, 10, 2): # range也可以设置起始和结束位置,和step步长的设置,能满足各种需求
...: print(i)
2
4
6
8 In [87]:

2. 列表推导式

列表推导式为从序列中创建列表提供了一个简单的方法。如果没有列表推导式,一般都是这样创建列表的:通过将一些操作应用于序列的每个成员并通过返回的元素创建或添加到列表,或者通过满足特定条件的元素创建子序列,如下,我们创建一个的序列:

In [77]: l5 = []

In [78]: for ele in range(10):
...: l5.append(ele ** 2) # 通过循环,把得到的结果追加到列表末 In [79]: l5
Out[79]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

但是如果使用列表推导式创建,就会简单的多:

In [81]: l6 = [x **2 for x in range(10) ]

In [82]: l6
Out[82]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

python学习笔记:第4天 列表和元组的更多相关文章

  1. Python学习笔记(二)——列表

    Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...

  2. python 基础学习笔记(3)--列表与元组

    **本次笔记主要内容为 列表,元组主要的功能和特性** **1.列表**: 学习过c语言的同学应该知道,c语言有数组这一功能,就是将数据类型相同的元素放在一起.由于python的变量没有数据类型,也就 ...

  3. python学习笔记-(四)列表&元组

    1.列表及元组操作 1.1 列表 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 定义列表: >>> namelist = ...

  4. Python学习笔记(五)—列表的学习

    总结内容: 1.list的定义 2.list的取值 3.list数据的增加 4.list数据的删除 5.list数据的修改 6.list数据的查询 7.list方法的介绍 8.list的合并 9.多维 ...

  5. Python学习笔记(3)--数据结构之列表list

    Python的数据结构有三种:列表.元组和字典 列表(list) 定义:list是处理一组有序项目的数据结构,是可变的数据结构. 初始化:[], [1, 3, 7], ['a', 'c'], [1, ...

  6. Python基础教程学习笔记:第二章 列表和元组

    1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...

  7. Python入门笔记——(2)列表和元组

    一.序列 python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.序列中每个元素被分配一个序号即索引,第一个索引为0,第二个为1,以此类推.也可以 ...

  8. Python学习笔记(迭代,列表解析,生成器)

    迭代(iterable):支持每次返回自己所包含一个对象的 iter()得到迭代器,.next()遍历列表. 列表解析:根据已有列表高效生成列表的方式. 生成器(Generator): 通过列表生成式 ...

  9. Python学习笔记(4)列表

    2019-02-26 列表(list):①创建方法:用‘[ ]’,将数据包括起来,数据之间用逗号隔开.②空列表:empty = []③增删改查: 1)增加: a.append()方法——将元素添加到列 ...

  10. python 学习笔记(一):在列表、字典、集合中根据条件筛选数据

    一.在列表中筛选数据 在列表中筛选出大于等于零的数据,一般通用的用法代码如下: data = [3, -9, 0, 1, -6, 3, -2, 8, -6] #要筛选的原始数据列表 result = ...

随机推荐

  1. Java接口与多态

    接口 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成 接口的定义格式 接口的数据成员,只允许被public, static, final修饰. 接口的方 ...

  2. r.js压缩打包(require + backbone)项目开发文件

    最近项目稳定了一点,之前一直没空关注的开发文件压缩打包问题也有时间来解决了 AMD模块化开发中的代码压缩打包工具——r.js 环境搭建基于nodejs:用于AMD模块化开发中的项目文件压缩打包,不是A ...

  3. Windows+linux命令大集合

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user: ...

  4. 使用ViewPager实现Tab

    一.效果演示及分析 我们直接看两幅图.如下:                   上两幅图实现的效果就是: (1)手指左右滑动时,中间的布局呈现不同的效果.而且下面的按钮也会做相应的改变. (2)我们 ...

  5. ZooKeeper介绍与环境搭建

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  6. 【转】Android学习系列(39)--Android主题和样式之系统篇(上)

    [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计 ...

  7. tp3.2替换模板中如果需要替换的图片在css样式表中怎么办?

    因为标签中的 style 定义的样式可直接覆盖 css样式表中定义的样式,所以可以在要替换的标签中用 style 直接定义样式,具体代码如下: <div class="aboutbg& ...

  8. VS2013没有安装部署,安装图解

    自vs2012后就已经没有安装向导了,VS2013安装是不带安装部署的,用 InstallShield Limited Edition for Visual Studio 解决安装部署问题 第一步:“ ...

  9. Jenkins+maven(testng)项目(本地项目配置)

    一.前提: 1. Jenkins下载安装. 2. testng的Maven项目. 二.检测: maven项目自身配置及检测. 1. POM.XML配置文件增加: <build> <p ...

  10. PCB 布线 注意哪些问题记录

    1.过孔不能打在焊盘上 ,这样 焊接的时候 会有焊锡 溢出导致 短路. 2.焊盘的线引出时应该从中间引出,不应该从角落引出 3.当有较粗的电源线连接在元器件上时,最好是 有一根小线连接在元器件上,回流 ...