Python基础011--列表和元组的內建方法的使用

列表和元组的內建方法的使用

  • 列表的內建方法

    • cmp()--->进行序列比较
      • 如果比较的元素是同类型的,则比较其值,返回结果-1或者1
      • 如果两个元素不是同一类型的,则检查他们是否是数字
        • 如果是数字,执行必要的数字强制类型转换,然后比较
        • 如果有一方的元素是数字,则另一方的元素"大"(数字是最小的)
        • 否则,通过类型名字的字母顺序进行比较
      • 如果有一个列表首先到达末尾,另一个长一点的列表大
      • 如果列表长度相同且所有元素按顺序都是相等的,那么两个序列就是相等的返回一个0
      • cmp()函数进行比较的时候,是按照顺序比较的
        • 因数字的值小,所以数字在前的元素的值永远是最小的
    In [202]: list1 = ["abc","def",123]
    In [203]: list2 = ["abc",123,"def"]
    In [204]: cmp(list1, list2)
    Out[204]: 1
    In [205]: list2 = [123,"def","sum"]
    In [206]: list3 = ["def",123,"sum"]
    In [207]: cmp(list2, list3)
    Out[207]: -1
    
    In [209]: list1 = [1,2,3,4,5]
    In [210]: list2 = [1,2,3,4,5,6,7]
    In [211]: cmp(list1, list2)
    Out[211]: -1
    In [212]: list1 = ['a','b','c']
    In [213]: list2 = ['d','e','f']
    In [214]: cmp(list1, list2)
    Out[214]: -1
    In [215]: list1 = ['a','b',123]
    In [216]: list2 = ['d','e','f']
    In [217]: cmp(list1, list2)
    Out[217]: -1
    In [218]: list1 = ['a','b','c']
    In [219]: list2 = ['a','b','c']
    In [220]: cmp(list1, list2)
    Out[220]: 0
    
  • 列表、元组、字符串中通用的方法

    • len()-->返回字符串的长度,就是字符串包含的字符个数;对于列表或者元组来说,它会返回列表或者元组的元素个数
    • max()和min()-->对于字符串操作,是获取字符串中最大和最小字符;对于列表和元组,或者列表和元组最大和最小的元素
    • enumerate()和zip()-->前者输出可迭代对象的index和元素值组成一个新的元组;后者等长的两个列表对应位的的元素组成一个元组,生成一个元组列表
    • sum()和reduce()-->对数字列表进行求和
    • list()与tuple()接受可迭代的对象作为参数,并通过浅拷贝数据来创建一个新的列表或元组
    • range()函数接受一个数值作为输入,输出一个符合标准的列表

  • 列表类型內建函数列表

函数表达式 表示含义
list.append(obj) 向列表中添加一个对象obj
list.count(obj) 返回一个对象obj在列表中出现的次数
list.extend(sep) 把序列seq的内容添加到列表中
list.index(obj,start,end) 返回obj在列表中第一次出现的位置的下标;eg:list.index(obj,start,end)
list.insert(index,obj) 在索引量为index的位置插入对象obj
list.pop(index=-1) 删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj) 重列表中删除对象obj
list.reverse() 对列表进行倒序
list.sort(fuc=None,key=None,reverse=False) 以指定的方式排序列表中成员,如果func和key参数指定,则按照指定的方式比较各个元素,如果reverse标志被设置为True,则列表以反序排列
In [254]: list1 = ['a','b','c']
In [255]: len(list1)
Out[255]: 3
In [256]: max(list1)
Out[256]: 'c'
In [257]: min(list1)
Out[257]: 'a'

# enumerate     -->返回一个元组,由每个元素的下标index和item组成
In [133]: s = "foobar"
In [135]: for x, y in enumerate(s):
 ...:     print x, y
0 f
1 o
2 o
3 b
4 a
5 r

# zip           -->返回一个列表,由两个字符串按顺序组成的元组
In [138]: s = "foa"
In [139]: t = "obr"
In [140]: zip(s,t)
Out[140]: [('f', 'o'), ('o', 'b'), ('a', 'r')]
  • 列表的一些操作方法

    In [1]: list1 = [1,2,'a','b',3,4]
    In [2]: list1.append(11)                        # 向列表中增添一个元素,默认添加到最后一位
    In [3]: list1
    Out[3]: [1, 2, 'a', 'b', 3, 4, 11]
    In [4]: list1.count(2)                          # 查看列表中这个obj对象出现的次数
    Out[4]: 1
    In [5]: m = ['c','d']
    In [6]: list1.extend(m)                         # 把一个列表添加到另一个列表中,默认添加到最后
    In [7]: list1
    Out[7]: [1, 2, 'a', 'b', 3, 4, 11, 'c', 'd']
    In [8]: list1.append(1)         、
    In [9]: list1
    Out[9]: [1, 2, 'a', 'b', 3, 4, 11, 'c', 'd', 1]
    In [11]: list1.index(1)                         # 查询列表中这个obj对象第一次出现的下标
    Out[11]: 0
    In [14]: list1.index('d')
    Out[14]: 8
    In [17]: list1.index(1,3,11)                    # 指定一个范围查询obj对象第一次出现的下标;
    Out[17]: 9
    In [18]: list1.insert(2,'f')                    # 在下标2中插入对象obj
    In [19]: list1
    Out[19]: [1, 2, 'f', 'a', 'b', 3, 4, 11, 'c', 'd', 1]
    In [20]: list1.pop()                            # 删除一个对象,默认是删除最后一个,返回这个对象值
    Out[20]: 1
    In [21]: list1
    Out[21]: [1, 2, 'f', 'a', 'b', 3, 4, 11, 'c', 'd']
    In [22]: list1.remove('a')                      # 从列表中移除一个obj对象
    In [23]: list1
    Out[23]: [1, 2, 'f', 'b', 3, 4, 11, 'c', 'd']
    In [24]: list1.reverse()                        # 列表的反序,修改原来的列表
    In [25]: list1
    Out[25]: ['d', 'c', 11, 4, 3, 'b', 'f', 2, 1]
    In [26]: list1.sort()                           # 列表的排序,修改原来列表
    In [27]: list1
    Out[27]: [1, 2, 3, 4, 11, 'b', 'c', 'd', 'f']
    
    
  • 元组的一些操作方法

    • 元组是不可变的,所有没有像列表中排序、替换、添加等这些操作
  • 元组中有的操作方法

    • cmp()---->两个序列进行比较
    • min()/max()---->得到元组中的最小值和最大值
    • len()---->得到元组的长度
    In [28]: tup = (1,2,3,4)
    In [29]: tup * 2
    Out[29]: (1, 2, 3, 4, 1, 2, 3, 4)
    In [30]: tup
    Out[30]: (1, 2, 3, 4)
    In [31]: max(tup)
    Out[31]: 4
    In [32]: min(tup)
    Out[32]: 1
    In [33]: 
    In [33]: len(tup)
    Out[33]: 4
    In [34]: tup1 = (1,2,3,4)
    In [35]: 
    In [35]: cmp(tup,tup1)
    Out[35]: 0
    
    
  • 元组和列表没有自己专用的操作符和內建函数;有的只是一些常用的操作;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容