基本数据类型:列表

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. NS Simulation: Scheduling Events (examples inside)

    NS Simulation: Scheduling Events Simulation time A similation system (such as NS) must have a built- ...

  2. js 获取URL中参数

    function getQueryString() { var result = location.search.match(new RegExp("[\?\&][^\?\& ...

  3. console和windows子系统

    https://blog.csdn.net/ilvu999/article/details/8050292

  4. MySQL的存储函数(自定义函数)的定义和使用方法

    存储函数 什么是存储函数: 封装一段sql代码,完成一种特定的功能,返回结果. 存储函数的语法:  create function 函数([函数参数[,….]]) Returns 返回类型 Begin ...

  5. Event Driven Architecture

    在微服务中使用领域事件   稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程.当你点击鼠标.敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件 ...

  6. 阅读Hibernate框架Session接口的源码的笔记

    一.阅读Session接口的注释的理解.(看着注释翻译的,有些地方可能翻译的不太对,有疑问再看源文档) ①.Session的生命周期随着事务开始而开始,事务的结束而结束. 附原文:The lifecy ...

  7. Gluon 实现 dropout 丢弃法

    多层感知机中: hi 以 p 的概率被丢弃,以 1-p 的概率被拉伸,除以  1 - p import mxnet as mx import sys import os import time imp ...

  8. php函数:call_user_func

    前段时间浏览文档发现一个有意思的PHP函数:call_user_func [文档地址] 函数作用:该函数主要用于通过函数名去调用该函数 例如: function test(){ echo " ...

  9. mybatis全局配置文件

    一.properties:引入外部配置文件 1.resource :引入类路径下的全局配置文件,例如:<properties resource="conf/dbconfig.prope ...

  10. x+=i和x = x+i比较 -- 简单赋值和复合赋值

    这两个赋值方式其实是有区别的,如果最后结果的类型和左操作数的类型一样,那么这两个表达式就完全等价. 下面来看看两个例子来理解它们的区别: 编写一个程序,使得x+=i合法, x = x+i: 不合法. ...