zoukankan      html  css  js  c++  java
  • 第三章 数据类型 — 列表(list)、元组(tuple)

    一、列表
    - 列表是写在[]之间的,每一项元素使用逗号分隔开的数据类型
    - 列表可以完成大多数集合类的数据结构实现,列表中的元素的类型可以不相同,它支持数字、字符串甚至可以包含列表,也就是列表的嵌套
    1 索引和切片
    - 列表同字符串一样,有索引也可以切片,只不过切片得到的是一个列表
    变量[头下标:尾下标:步长]
    1 list = ['abcd', 786, 2.23, 'bast', 70.2]
    2 tinylist = [123, 'bast']
    3  
    4 print(list) # 输出完整列表
    5 print(list[0]) # 输出列表第一个元素
    6 print(list[1:3]) # 从第二个开始输出到第三个元素
    7 print(list[2:]) # 输出从第三个元素开始的所有元素
    8 print(tinylist * 2) # 输出两次列表
    9 print(list + tinylist) # 连接列表
    和字符串不相同的是:列表是可以发生改变的,能够直接在原来的对象上进行操作
    2 “增”
    li = [1,'a','b',2,3,'a']
    # li.append('aaa') #增加到最后 # li.append([1,2,3]) #增加到最后
     
    # li.insert(0,55) #按照索引去增添指定元素,插入每一个数据的位置都需要向后移动,效率比较低
     
    # li.extend(['q,a,w']) #迭代的去增 # li.extend(['q,a,w','aaa']) # li.extend('a') # li.extend('abc') # li.extend('a,b,c')
    3 “删”
    l1 = li.pop(1)    #按照索引位置去删除,有返回值,默认为最后一个 
    print(l1)
     
    del li[1:3]    #按照位置去删除,也可切片删除没有返回值。 
    print(li) # li.remove('a')    #按照元素去删除 
    print(li) # li.clear()    #清空列表  
    4 “改”
    # li[1] = 'dfasdfas' # 索引改 
    
    # print(li) # li[1:3] = ['a','b'] #切片改 如果步长数不是1, 要注意元素个数 
    # print(li)
    5 “查”
    切片去查,或者用循环去查
    for el in li:
        print(el)
    6 其他操作
    - count() : 方法用来统计元素在列表中出现的次数
    a = ["q","w","q","r","t","y"] 
    print(a.count("q"))
    - index() : 从列表中找某个元素第一个匹配项的索引位置
    a = ["q","w","r","t","y"] 
    print(a.index("r"))
    - sort() : 排序,默认为升序,reverse = True为降序
    - reverse() : 将列表中的元素反向存放
    a = [2,1,3,4,5] a.sort()    # 他没有返回值,所以只能打印a 
    print(a) a.reverse()    #他也没有返回值,所以只能打印a 
    print(a)
    7 列表的嵌套
    采用降维操作,一层一层分析
    lst = [1, "dalao", "jiumo", ["马花藤", ["可口可乐"], "王监零"]]
     
    # 找到"dalao"
    print(lst[1])
     
    # 找到"dalao"和"jiumo"
    print(lst[1:3])
     
    # 找到"dalao"的"a"
    print(lst[1][1])
     
    # 将"jiumo"然后字母大写,在放回去
    s = lst[2]
    s = s.capitalize()
    lst[2] = s
    print(lst)
    # 简写
    lst[2] = lst[2].capitalize()
    print(lst)
     
    # 把"dalao"换成"dadiao"
    lst[1] = lst[1].replace("lao", "diao")
    print(lst)
     
    # 把"马花藤"换成"马化藤"
    lst[3][0] = lst[3][0].replace('', '')
    print(lst[3][0])
     
    lst[3][1].append("雪碧")
    print(lst)
    二、元组
    1. 特性:
    元组(tuple)俗称不可变的列表,又可以被看成只读列表。元组写在小括号里,元素之间用逗号隔开。
    元组中的元素的类型可以不相同。虽然tuple的元素不可变,但是他可以包括可变的对象,比如list列表。
    元组与字符串类似,可以被索引,下标从0开始,-1作为结尾。可以做切片处理。
    元组构造如果只包含0个或者1个元素的时候有特殊的语法规则:
    1 tup1 = () # 空元组
    2 tup2 = (20,) # 一个元素,需要在元素后添加逗号
    元组可以使用+操作符进行拼接
    2 操作
    元组不允许“增、删、改”。
    元组允许“查看”、“循环“、”切片“
    查看的方式可以使用索引,也可以使用 for 循环
    1 print(tu[2])
    2 print(tu[::2])
    注意:
    元组是不允许操作,但是元组有count(),index(),len()等方法。并且元组内的子元素是可以进行操作的,这取决与子元素是否是是可变对象。
    1 # 例如子元素为列表list时,可以对列表中的元素进行操作:
    2 tu = (1,"哈喽", "how are you?", "jiumo", ["jiumo"])
    3 tu[4].append("dada")
    4 print(tu)
    3 range()方法
    range()是一个可迭代对象
    —— range(n) ==> 0 ——> n -1
    1 for i in range(0, 10):
    2 print(i) # 输出结果为 0,1,2 ......9
    —— range(n,m) ==> n ——> m
    1 for i in range(2, 0):
    2 print(i) # 输出结果为 2,3,4......9
    —— range(n, m, i) ==> n ——> m 步长为i
    1 lst = ["马頔", "陈粒", "赵雷", "好妹妹"]
    2 for i in range(len(lst)):
    3 print(i)
    4 print(lst[i])
  • 相关阅读:
    让CEF支持FLASH(非安装插件的形式)
    解决SQLServer 2008 日志无法收缩,收缩后大小不改变
    HTML Socket实现 .NET
    JS基础之BOM对象
    JavaScript对象
    JS函数
    JavaScript概述
    CSS块级元素和行内元素
    返回顶部示例
    CSS属性操作二
  • 原文地址:https://www.cnblogs.com/jiumo/p/9398388.html
Copyright © 2011-2022 走看看