zoukankan      html  css  js  c++  java
  • Beginning Python Chapter 3 Notes

      变量(variable)是储存数据的实体,在Python中也被称为"名称"(name)。

      1.Python"名称"基本命名法则

        1.1) "名称"不能是Python的内置词(保留字、关键字)。

        1.2) "名称"由数字、下划线、字母组成。

       Python关键字表以及其余约定俗称的规则将在另一篇文章中详细阐述。

      原文的排版也是醉了,讲名称时又讲起了内置数据类型。为了尊重原文,所以下面还是谈谈Python的另外几种基本数据类型:元组、列表、集合、字典。

      2.序列类型(Sequence Types)-----元素有序,元素可重复

       2.1) Tuple 元组

       元组是不可变有序数据序列,一旦创建元组内容将无法再被修改。元组是值的序列,每个值都可以被单独访问。Python语言没有内置的数组类型(Array Type),但是我们可以通过Tuple来实现类似Java中Array的功能。而且元组的元素可以为任何Python合法数据,类似于Java的泛型机制。下面总结一下元组的特征:

         a) 属于Python序列大类。Python的序列支持切片操作,因此元组也支持切片(Slice)操作(PS:Matlab也支持切片操作)。

    1 #  元组支持切片操作
    2 #  array[start:end:inc]
    3 #  start表示开始索引位置,end表示结束索引位置(不包括),inc表示增益
    4 
    5 >>> array = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
    6 >>> array[0:1]
    7 ((1, 2, 3),)
    Tuple supports slice operation

         b) 类似于Java中的数组。支持通过下标索引获取数据,索引范围为0~len(array)-1。不过比Java更进了一步,Python支持了负索引,因此Python索引范围是-len(array)~len(array)-1。如果超出索引范围,会有IndexError提示。注意:元组中的索引是自动产生的,类似于字典中的键,当然索引可以是键。

     1 #  元组支持通过索引寻址
     2 #  一般来说,如果只是序列,寻址的索引是自动生成的整数
     3 
     4 >>> array = ('one', 'two', 'three', 'four', 'five')
     5 >>> array[0]
     6 'one'
     7 >>> array[-5]
     8 'one'
     9 >>> array[-6]
    10 Traceback (most recent call last):
    11   File "<pyshell#17>", line 1, in <module>
    12     array[-6]
    13 IndexError: tuple index out of range
    Tuple supports index address

         还有,Python元组支持类似Java的多维数组。当然多维数组包括了规则多维数组和不规则多维数组。

     1 #  元组支持类似Java多维数组的多维形式
     2 #  包括规则、不规则的多维类型
     3 
     4 >>> array = ((True, 'two', 3.0), ['one', 2, 0.3e1], {'one':1, 'two':2, 'three':3})
     5 >>> array[0][0]
     6 True
     7 >>> arr[1][0]
     8 'one'
     9 >>> array[2]['one']
    10 1
    11 >>> array[2]
    12 {'one':1, 'two':2, 'three':3}
    Tuple supports multidimensional Types

         c) Python默认为元组类型情况。如果在无"()"作为分隔符且存在以","作为中间分隔时,默认为元组。

            >>> x = 1, 2, 3  结果为:(1, 2, 3) 由逗号分隔的序列默认为元组序列 

         d) 元组的内置函数     

         Python元组包含以下内置函数:
           cmp(tuple1, tuple2)  # 比较两个元组元素 
           len(tuple)           # 计算元组元素个数 
           max(tuple)           # 返回最大元组元素   min(tuple)           # 返回最小元组元素   
           tuple(list)          # 将列表转换为元组 

         e) 元组的基本概念

         元组的创建:

           >>> tup = () # 创建空元组      

           >>> tup = ('one',) # 创建单元素元组时加","表明tup数据类型为元组,而不是单个元素的数据类型. 

           >>> tup = ('one', 'two') 

           想当然地创建元组失败: 

           >> tup = ('one') #"()"既是算术括号,也是元组符号,在此处等价tup = 'one'属于字符串类型 

           元组创建时可以进行组合、截取等操作,从而创建新元组

             >>> tup1 = ('one', 'two', 'three')   tup2 = tup1[0:2] 

         元组的访问寻址:

           元组的访问寻址可以通过索引和切片,上文已经阐述,因此不再赘述。

         元组的更新:

           元组是不可变的有序序列。因此元组一旦被创建,则不能够再被修改。但是我们可以通过元组运算符"+"和"*"来对元组进行组合,不过这种组合的本质实际上是创建了新的元组。

    1 >>> tup1 = (1, 2)
    2 >>> tup2 = (3, 4) 
    3 >>> tup3 = tup1 + tup2 
    4 >>> tup4 = tup1 + 2*tup2
    5 >>> print tup3 
    6 (1, 2, 3, 4) 
    7 >>> print tup4  
    8 (1, 2, 3, 4, 3, 4)
    Tuple elements alter

         元组的删除:

           虽然无法删除元组元素,但是可以使用del删除整个元组。注意:del tuple和空元组是不同的概念,一个是空集,一个是连空集都谈不上。

           >>> del tup # 删除tup后,tup变成了undefined. 如果再次输出tup,则会有NameError. 

         元组的拷贝:

           >>> tup2 = tup1    

           >>> tup2 = tup1(:)      

           >>> tup2 = tuple(tup1) # 构造函数拷贝 

       2.2) List 列表

       列表是可变有序数据序列,列表在创建后仍然能够再修改。列表和元组一样都是值的序列,每个值都可以被单独访问,只不过列表的序列可以改变。Python语言的列表和Java集合中的ArrayList<E e>类似,具有类似Java泛型机制的意味。或者也可以认为类似于ANSI C++中的Vector。

       List和Tuple十分相似,下面仅介绍List相较于Tuple不同的特征,当然兼顾和介绍元组时的格式对称:

       a) 列表的创建

          >>> li = []   # 创建空列表 

          >>> li = range(start,end,inc) # 创建有序列表   >>> li = range(end) # start和inc均可省略取默认值,start=0,inc=1  

          >>> li = ['one'] # 创建单元素列表   >>> li = ['one', 'two'] # 创建双元素列表 

       b) 列表的访问寻址  与元组类似,不再赘述

       c) 列表的更新

         介绍一些常用列表函数

     1 #!  /usrs/bin/python
     2 #  _*_  coding:utf-8  _*_
     3  
     4 1.末尾追加元素操作:
     5     list.append(elem)   #  追加elem元素
     6     list.extend(seq)     #  追加seq序列中所有元素
     7 2.计数操作:list.count(elem)   # 统计elem元素在列表中出现频数
     8 3.寻址操作:list.index(elem)   # 从列表中找出某个值第一个匹配项的索引位置
     9 4.插入操作:list.insert(index, elem)    # 将elem插入列表index位置处
    10 5.按索引移除操作:
    11      list.pop()   # 移除列表中最后一个元素,并且返回该元素的值  
    12      list.pop(index)  # 移除列表中位置index处的元素,并且返回该元素的值   
    13 6.按内容移除操作:list.remove(elem)  # 移除列表中某个值的第一个匹配项
    14 7.反转操作:list.reverse()   # 反向列表中元素
    15 8.排序操作:list.sort()        # 对原列表进行排序(默认自然排序或字典序排序)
    16                  list.sort(key = len)   # 原列表按照
    17                  list.sort(reverse = True)  # 对原列表逆序排序,即反转列表元素 
    list function

       d) 列表的删除

         列表是可变序列。因此列表的删除可以单独删除列表元素。     

    1 #!  /usrs/bin/python
    2 #  _*_ coding:utf-8 _*_
    3 
    4 li = [0, 2, 4, 6, 8]
    5 del li[1]
    6 print li
    7 
    8 结果是:[0, 4, 6, 8]
    delete list elements 

         当然也可以像元组一样删除所有的列表元素,效果同元组类似。

       e) 列表的拷贝  与元组类似,不再赘述

      3.集合类型(Collection Types)-----元素无序,可不可重复看具体集合类型

       3.1) set 自有集

       可重复集合

       3.2) frozenset 冻结集

       不可重复集合

      4.映射类型(Map Type)-----元素无序,key值不可重复,value值可重复

      

      

      

      

      

      

      

      

      

    max(tuple)

    元组是值的序列,每个值都可以被单独访问。Python语言没有内置的数组类型(Array Type),但是我们可以通过Tuple来实现类似Java中Array的功能。而且元组的元素可以为任何Python合法数据,类似于Java的泛型机制。下面总结一下元组的特征:

  • 相关阅读:
    CMMI的5个级别
    ubuntu下的烧录工具
    Git 安装配置
    使用 Git & Repo 下载代码
    Git 忽略文件
    Git rebase
    使用Git进行本地提交后,未上传提交,却不小心删除了本地提交或提交所在分支,怎么办?????
    Repo
    IOS关于UIViewController之间的切换
    PresentModalViewController
  • 原文地址:https://www.cnblogs.com/forget406/p/5183327.html
Copyright © 2011-2022 走看看