2、Python序列

  序列是一种数据存储方式,类似于C语言的数组。简单的说序列是一块用来存储多个值的连续内存空间,同一个序列的元素通常是相关的。

  Python中常用的序列结构有列表、元组、字典、字符串、集合等,字典和集合是无序的,其他三个都支持双向索引。一般0为第一个序列,但是python可以用负数做下标序列,最后一个下标为-1,之前的为-2,以此类推。

  2.1列表

    列表的所有元素放在一堆方括号中相邻元素之间用逗号分开,元素扩充或删除时,列表自动扩充或缩减,但尽量向列表末尾进行增删操作。同一列表中元素类型可以不同,可以是基本类型,也可以是序列类型。

    2.1.1列表的创建和删除

      创建:a_list=[]空列表

         a_list=['a','b','zxlc']

         也可以用list()函数将元组、range对象、字符串或其他类型的对象转换成列表例如:

         a_list=list((3,5,7,9))  #将元组转换成列表

         list(range(1,10,2)           #将range对象转换成列表(range函数:第一个参数是起始数,第二个参数是终止数,第三个数是步长)

         list('hello world')     #将字符串转换成列表

         x=list()          #创建空列表

       删除:del a_list

    2.1.2列表元素添加

      1、append()方法,在列表末尾添加一个元素

          a_list.append(i)

      2、+,创建一个新列表,在旧列表后加上这个新列表

        a_list=a_list+[i]

      3、extend()方法可以将其他元素放在后面

      4、insert()方法可以按元素顺序插入元素

      5、用乘法来扩展列表对象,将列表与整数相乘,生成一个新序列,新序列是之前序列的重复,相当于另外创建了一个序列(id不同)

    2.1.3列表元素删除

      1、使用del命令删除列表中的指定位置上的元素。

        a_list=[3,5,7,9,11]

        del a_list[1]

        a_list

        [3,7,9,11]

      2、pop()方法删除并返回指定位置上的元素(默认为最后一个),如果指定的索引超出了范围,就抛出异常。

      3、remove()方法删除首次出现的指定元素,如果列表中不存在这个元素,则抛出异常。

***每次执行完插入和删除操作,元素的索引都会改变

    2.1.4列表元素查询和计数

      查询可以直接用下标

      index()函数可以查看指定元素的索引

      count()函数可以计数某元素出现的次数

    2.1.5判断元素是否在列表中

      用in

        3 in a_list

    2.1.6切片操作

      切片使用两个冒号分隔的三个数字来完成:第一个数字为切片开始位置(默认为0);第二个数字为切片截止(但不包含)位置(默认为列表长度),第三个数字为切片的步长(默认为1),当步长省略时,最后一个冒号也可以省略

      例如 aList=[3,4,5,6,7,9,11,13,15,17]

       >>>aList[::-1]

         [17,15,13,11,9,7,6,5,4,3]

       >>>aList[::2]

         [3 ,5,7,11,15]

用切片复制列表是一个中浅克隆,而直接列表等号赋值是深克隆。

    2.1.7列表排序

      利用sort()函数,返回排序后的原列表。

      默认为升序:aList.sort()

      改为降序:aList.sort(reverse=true)

      利用sorted()函数,返回排序后的新列表

    2.1.8列表中常用的方法

      1、cmp()比较大小

      2、len()返回列表长度

      3、max()、min()返回列表的最大最小值

      4、sum()返回列表值的和

      5、zip()将多个列表或元组对应位置的元素组合成为元组并返回包含这些元组的zip对象

        alist=[1,2,3]

        blist=[4,5,6]

        clist=[7,8,9]

        dlist=zip[alist,blist,clist]

        dlist

        [(1,4,7),(2,5,8),(3,6,9]

    2.1.9列表推导式

      >>>alist=[x*x for x in range(10)]

      相当于

      >>>alist=[]

      >>>for x in range(10):

          alist.append(x*x)

   2.2元组

    元组为不可变序列,元组一旦创建,用任何办法都无法修改其元素的值,也无法增加删除元素,确实需要修改则可以再创建一个元组。放在一对圆括号中。

    2.2.1元组创建

      a_tuple=('a','b')

      如果仅仅创建一个只有一个元素的元组,那么在这个元素后需要加一个逗号,不然会认为是该元素本身。

    2.2.2元组删除

      del()

    2.2.3元组和序列的区别

      1、元组不可变,所以不能有增删改元素;序列可变,有许多函数可以增删改元素

      2、元组通过tuple()函数可以冻结列表使其不可变;而列表通过list()函数可以融化元组,使其可变。

      不过元组中的元素可以包含可变的序列。

    2.2.4序列解包

    在元组中,可以用序列解包进行多变量同时赋值

    >>>x,y,z=1,2,3

    >>>print(x,y,z)

    在字典中,默认是对字典的键操作,如果需要对键值对操作,需要使用字典的items()方法,如果需要对字典的值操作,则需要使用字典的values()方法指定。

    >>>a=[1,2,3]

    >>>b,c,d=a

    >>>s={'a':1,'b':2,'c':3}

    >>>b,c,d=s.itmes()

    >>>b

    ('a',1)

    >>>b,c,d=s

    >>>b

    'a'

    >>>b,c,d=s.values()

    >>>print(b,c,d)

    1 3 2

    

    2.2.5生成器推导式

    用圆括号,返回为一个生成器对象,可以将其强转为一个列表或者一个元组,也可以使用生成器对象的_next_()方法进行遍历,或者直接将其作为迭代器对象来使用,不过只能访问一次,还想访问需要重新创建。

    >>>g=((i+2)**2 for i in range(10))

     这是个生成器对象,意为4,9,16.。。。,121

    >>>g.next()

    4

    >>>g.next()

    9

2、Python列表和元组的更多相关文章

  1. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  2. python列表与元组的用法

    python列表与元组的用法 目录: 列表的用法: 1.增   append   +    extend 2.删  del    remove 3.改   insert 4.查  index 5.反向 ...

  3. (转)python 列表与元组的操作简介

    python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...

  4. Python列表和元组

    Python是没有数组的概念,但是和数组比较相近的概念是列表和元素. 下面两个例子展示列表和元组. # coding=utf-8 # 元组 students = ('小明', '小黄', '小李', ...

  5. 认识Python 列表和元组

    列表用方括号   l=[['xyz',123], 'abc', 3140000000.0, (23+1.3j), 'ddd'] 元组用圆括号   t=(['xyz', 123],'abc', 3140 ...

  6. #9 Python列表和元组

    前言 Python中有6种序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.序列通用操作包括:索引.切片.长度.加.乘.最大值.最小值,遍历和检查成员.虽然Pytho ...

  7. Python: 列表,元组,字典的区别

    Python中有3种内建的数据结构:列表,元组和字典 1.列表 list是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中项目应该包括在方括号中,这样python就知道是在指明 ...

  8. [python01] python列表,元组对比Erlang的区别总结

    数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字,字符,甚至可以是其他的数据结构. python最基本的数据结构是sequence(序列):6种内建的序列:列表,元组,字符串, ...

  9. python 列表,元组,字符串方法和属性

    python序列包含列表[].元组().字符串三种 -------列表-------------- 一.列表基本内容 1.建立:a=[1,2,3,5],通过[ , ,], >>>b= ...

  10. Python 列表、元组、字典及集合操作详解

    一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...

随机推荐

  1. unity 显示、隐藏Android导航栏

    1.下面的返回.home栏可用Screen.fullScreen控制 2.导航栏的显示和隐藏用下面代码控制 private AndroidJavaObject currentActivity { ge ...

  2. 【2018 Multi-University Training Contest 2 1007】Naive Operations

    [链接] 我是链接,点我呀:) [题意] 给你两个数组a,b; b数组是1..n的一个排列. 现在给你两种操作: add l,r将a[l..r]都加上1 query l,r 询问$∑^r_l\frac ...

  3. 【codeforces 505D】Mr. Kitayuta's Technology

    [题目链接]:http://codeforces.com/problemset/problem/505/D [题意] 让你构造一张有向图; n个点; 以及所要求的m对联通关系(xi,yi) 即要求这张 ...

  4. 循环语句第2种 WHILE ... LOOP END LOOP;

     --------第2种--------   WHILE ... LOOP   END LOOP;    declare    n number(3) :=1;  begin    WHILE n&l ...

  5. 阅读《Android 从入门到精通》(15)——数字时钟

    数字时钟(DigitalClock) java.lang.Object; android.view.View; android.widget.TextView; android.widget.Digi ...

  6. HDU 4749 Parade Show(暴力水果)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4749 Problem Description   2013 is the 60 anniversary ...

  7. 【BUG】android.content.res.Resources$NotFoundException: File res/drawable-xxhdpi/toolbar_line.png from

    SafeGod在coolpad(4.0)上执行.登陆进去的设备列表界面遇到的问题.三星和索尼没有这个问题. 06-24 15:23:06.897: E/AndroidRuntime(12655): F ...

  8. C++ 虚函数的缺省參数问题

    前些日子,有个同学问我一个关于虚函数的缺省參数问题.他是从某个论坛上看到的.可是自己没想通.便来找我. 如今分享一下这个问题.先看一小段代码: #include <iostream> us ...

  9. PFILE和SPFILE介绍

    一.PFILE Pfile(Parameter File,参数文件)是基于文本格式的参数文件,含有数据库的配置参数. 1.PFILE - initSID.ora(默认PFILE名称),位置在$ORAC ...

  10. POJ 3269 中位数

    题意: 思路: 这道题坑也不少.. 你准备好脑洞了么? 首先 要认真审题 题目中有说:"没有两头牛的吃草位置是相邻的" 这句话让我们省了很多的事儿 (Discuss里有的大神就入了 ...