列表(list)

列表是经常用到的一种数据类型,是一组有序的数据集合,可以将各种数据有序的存放在列表中,并且可以对其进行增删改查,以及遍历。

列表就是为了使变量能够存储更多的信息,比如我想存储一张购物清单,然后程序只需要调用该变量就可以找到其中的商品。例如:

>>> shopping_list = ['Iphone', 'Mac', 'Bike','Coffee','Car','Clothes','Food','Gift']
>>> shopping_list
['Iphone', 'Mac', 'Bike', 'Coffee', 'Car', 'Clothes', 'Food', 'Gift']

通过内置的len()函数可以查看列表中元素的个数

>>>len(shopping_list)
8

如果要取出shopping_ist列表中的某一个数据,那应该怎么做呢?

>>>shopping_list[0]
'Iphone'
>>>shopping_list[2]
'Bike'
>>>shopping_list[-1]
'Gift'
>>>shopping_list[-2]
Food

如上,显然,只需要通过索引就可以取出对应的元素,但要注意的是索引是从0开始的,-1表示倒数第一个元素,-2表示倒数第二个,以此类推,shopping_list列表有8个元素,那索引是0-7,那shopping_list[8]会输出什么呢?

>>>shopping_list(8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

程序报错了,看最后一行,索引错误,超出列表索引范围。

这里介绍一个函数,这个函数可以将列表中所有元素的索引打印出来

>>> a = ['a','b','c','d']
>>> for k,v in a.enumrate():
... print(k,v)
...
0 a
1 b
2 c
3 d

前面我们说了怎么取列表中的元素,但是每次只是取一个元素,那有没有办法一次取出多个元素呢?

这就是接下来要说的:列表的切片

>>>shopping_list
['Iphone', 'Mac', 'Bike','Coffee','Car','Clothes','Food','Gift']
>>>shopping_list[0:3]
['Iphone', 'Mac', 'Bike']
>>>shopping_list[:3]
['Iphone', 'Mac', 'Bike']
>>>shoping_list[3:5]
['Coffee','Car']
>>>shopping_list[0:-3]
['Iphone', 'Mac', 'Bike','Coffee','Car']
>>>shopping_list[1:8:2]
['Mac','Coffee','Clothes','Gift']

不多说了,很简单,需要注意的是shopping_list[0:3]取第0-3的元素,不包括索引为3的,因为索引为2的元素就是第三个。

最后一个shopping_list[1:8:2]中,2是步长,即每隔一个取一个

列表的增删改

>>>shopping_list.append('Cup')    #向列表追加元素
['Iphone', 'Mac', 'Bike', 'Coffee', 'Car', 'Clothes', 'Food', 'Gift','Cup']
>>>shopping_list.pop() #删除最后一个元素
'Cup'
>>>shopping_list.remove('Mac') #删除叫‘Mac’的元素,如果有多个‘Mac’,则移除第一个
>>>shopping_list
['Iphone', 'Bike', 'Coffee', 'Car', 'Clothes', 'Food', 'Gift']
>>>shopping_list[2] = 'COFFEE' #修改索引为2的元素
>>>shopping_list
['Iphone', 'Bike', 'COFFEE', 'Car', 'Clothes', 'Food', 'Gift']
>>>shopping_list.insert[3,'Toy'] #在索引3的位置插入元素
>>>shopping_list
['Iphone', 'Bike', 'COFFEE','Toy', 'Car', 'Clothes', 'Food', 'Gift']
>>>shopping_list.index('Toy') #返回'Toy'的索引值,如果有多个,则返回第一个
>>>shopping_list.conut('Toy') #返回列表中有多少个'Toy'
1
>>>list = ['apple','orange']
>>>shopping_list.extend(list) #将list合并到shopping_list中
>>>shopping_list
['Iphone', 'Bike', 'COFFEE','Toy', 'Car', 'Clothes', 'Food', 'Gift','apple','orange']
>>> shopping_list.sort() #将列表排序
>>> shopping_list
['Bike', 'COFFEE', 'Car', 'Clothes', 'Food', 'Gift', 'Iphone', 'Toy', 'apple', 'orange']
>>> shopping_list.reverse() #将列表反转
>>> shopping_list
['orange', 'apple', 'Toy', 'Iphone', 'Gift', 'Food', 'Clothes', 'Car', 'COFFEE', 'Bike']
>>> del shopping_list[3:8] #删除列表索引3-7的元素
>>> shopping_list
['orange', 'apple', 'Toy', 'COFFEE', 'Bike']

元组:

与列表差不多,不同的是元组是只读的,一旦定义将不能被修改。

值得注意的是,元组在定义的时候,如果只有一个元素,需要加一个逗号,比如

>>> t = (1)
>>> type(t)
<class 'int'>
>>> t = (1,)
>>> type(t)
<class 'tuple'>
>>> t = ('Jack')
>>> type(t)
<class 'str'>
>>> t = ('Jack',)
>>> type(t)
<class 'tuple'>

看出问题了吗?如果不加逗号的话,会识别成数字或字符串。所以只有一个元素的时候,需要加一个逗号,消除歧义。

python(1) - 列表和元组的更多相关文章

  1. Python基础------列表,元组的调用方法

    Python基础------列表,元组的调用方法@@@ 一. 列表 Python中的列表和歌曲列表类似,也是由一系列的按特定顺序排列的元素组成的,在内容上,可以将整数,实数,字符串,列表,元组等任何类 ...

  2. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  3. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  4. python:列表与元组

    1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...

  5. python中列表,元组,字符串互相转换

    列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...

  6. Python基础-列表_元组_字典_集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  7. Python自动化 【第二篇】:Python基础-列表、元组、字典

    本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库, ...

  8. Python:列表,元组

    一.列表 和字符串一样,列表也是序列类型,因此可以通过下标或者切片操作访问一个或者多个元素.但是,不一样的,列表是容器类型,是可以进行修改.更新的,即当我们进行修改列表元素,加入元素等操作的时候,是对 ...

  9. python中列表,元组,字符串如何互相转换

    python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...

  10. Python学习--列表和元组

    在python中,最基本的数据结构是序列.序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0. python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buf ...

随机推荐

  1. Bmob第三方登录详解

    Bmob第三方登录详解 Bmob 第三方登录 简介 本文主要介绍新浪微博,QQ,微信的登录接入以及如何配合BmobSDK中的第三方登录功能实现第三方登录. 在使用之前请先按照快速入门创建好可以调用Bm ...

  2. 新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法 -摘自网络

    新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法1.UNC路径:\\192.168.1.2\test\,假设连接该UNC路径的用户名为:web,密码为:123 2.在原web ...

  3. 第二百五十七天 how can I 坚持

    下了个vmware12,不能用,不支持intel vx.电脑太老了,该换了,不过还很好用.该咋办.明年买个小米笔记本. 小米今天出了个小米自行车.不过不是小米生态链产品,好丑. 今天懒掌柜定做宣传服. ...

  4. ACM OJ Collection

    浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 同济大学(TJU):http://acm.t ...

  5. DB2 递归查询

    上一篇中讲解了ORACLE中的递归查询,下面我们看一下DB2中如何使用递归查询: 同样的我们先新建一个表来存储以上信息,并插入测试数据: --建表 create table FAMILY ( pers ...

  6. poj 1469 COURSES(匈牙利算法模板)

    http://poj.org/problem?id=1469 COURSES Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:  ...

  7. HDU 3666 THE MATRIX PROBLEM (差分约束)

    题意:给定一个最大400*400的矩阵,每次操作可以将某一行或某一列乘上一个数,问能否通过这样的操作使得矩阵内的每个数都在[L,R]的区间内. 析:再把题意说明白一点就是是否存在ai,bj,使得l&l ...

  8. HDU 4489 The King’s Ups and Downs (DP+数学计数)

    题意:给你n个身高高低不同的士兵.问你把他们按照波浪状排列(高低高或低高低)有多少方法数. 析:这是一个DP题是很明显的,因为你暴力的话,一定会超时,应该在第15个时,就过不去了,所以这是一个DP计数 ...

  9. UML图示

    来源: http://www.uml.org.cn/oobject/200901041.asp 近些天学习设计.由于没有具体项目,原有项目也没有什么设计的概念,只是看相关的书籍,所以着实有些抓狂.然最 ...

  10. JQuery Plugin 1 - Simple Plugin

    1. How do you write a plugin in jQuery? You can extend the existing jQuery object by writing either ...