zoukankan      html  css  js  c++  java
  • Python学习(四)—— 列表和元组的类中方法

    列表

    list:用中括号括起来,用“,”分割每个元素,列表中的元素可以是 数字、字符串、列表、布尔值......所有东西,可以说就是一个“集合”

    li = [1,3,5,'alex','age',['sister',5],True]

      列表是有序

      支持用索引、切片的方式取值

      支持 for、while循环

      列表元素是可以用索引、切片的方式进行修改和删除的

     1 li = [1,3,5,'alex','age',['sister',5],True]
     2 li[1] = 10
     3 print(li)
     4 li[4] = [1,2,3,4]
     5 print(li)
     6 del li[0]
     7 print(li)
     8 """
     9 [1, 10, 5, 'alex', 'age', ['sister', 5], True]
    10 [1, 10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]
    11 [10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]
    12 """

      索引取值支持嵌套方式

    c = li[5][0][1]
    print(c)
    #i

    in和not in:

      判断某个东西是否包含在某个东西里面(判断元素是否在列表中),结果是布尔值

    1 li = [1,3,5,'alex','age',['sister',5],True]
    2 x = 1 in li
    3 y = 'sister' in li
    4 z = ['sister',5] in li
    5 w = 'sister'and 5 in li
    6 print(x,y,z,w)
    7 #True False True True

     

    和其他类的转换

      字符串可以使用list()转换为列表,内部使用for循环,但数值不可以

      列表转换为字符串的方式:

      ——写for 循环:既有字符串又有数字

    1 li = [1,3,5,'alex','age',['sister',5],True]
    2 s = ""
    3 for i in li:
    4   s += str(i)
    5 print(s)
    6 #135alexage['sister', 5]True

      ——用.join() :只有字符串

    1 li = ['alex','age']
    2 s = "".join(li)
    3 print(s)
    4 #alexage

    .clear() 

      给列表清空

    .copy()  

      浅拷贝

    .count() 

      计算元素出现的次数

    x.append(c)

      给x列表后追加c值

    注意:c是参数,参数是调用函数时传入的变量

    1 li = ['alex','age']
    2 v = li.append(["lala",124])
    3 print(v,li)
    4 #None ['alex', 'age', ['lala', 124]]

    .extend(iterable) 

      将可迭代对象iterable里的元素一个一个追加,扩展原来的列表,在内部执行for循环。iterable是可迭代对象

    1 li = ['alex','age']
    2 li.extend(["lala",124])
    3 print(li)
    4 li.extend("不得了")
    5 print(li)
    6 """
    7 ['alex', 'age', 'lala', 124]
    8 ['alex', 'age', 'lala', 124, '不', '得', '了']
    9 """

    .index() 

      根据值获取当前值的索引位置,最左侧优先

    .insert(v1,v2) 

      在第v1位置插入v2

    .pop(index)

      删除列表中某个元素,默认删除最后一个,且删除的这个值可以获取

    1 li = ['alex','age']
    2 v = li.pop()
    3 print(li,v)
    4 #['alex'] age

     .remove() 

      删除列表中的指定值,且左边优先

    .reverse() 

      将当前列表反转

    .sort()

      对当前列表排序

    1 li = [11,44,22]
    2 li.sort()
    3 print(li)
    4 #[11, 22, 44]

      对当前列表降序排列

    1 li = [11,44,22]
    2 li.sort(reverse = True)
    3 print(li)
    4 #[44, 22, 11]

    元组 

    tuple:是列表的一种加工,用“()”,一级元素不可被修改,不能增加或删除。

      一般在创建元组时会在最后加一个“,”,以区分元组和列表

      元组是有序的

    1 tu = (11,44,22,["alex",2],True)
    2 print(tu)
    3 tu1 = (11,44,22,["alex",2],True,)
    4 print(tu1)
    5 """
    6 (11, 44, 22, ['alex', 2], True)
    7 (11, 44, 22, ['alex', 2], True)
    8 """

      元组可以通过索引和切片取值

      元组支持for循环和while循环,是可迭代对象

      元组可以修改内部列表的元素:

    1 tu = (["alex",4,5],"ewe",)
    2 tu[0][2] = [1,3,5]
    3 print(tu)
    4 #(['alex', 4, [1, 3, 5]], 'ewe')

    和其他类的转换

    1 tu = ("asfe","ewe",)
    2 s = "we35123fe"
    3 li = ["aweb","egg"]
    4 print(tuple(s),tuple(li))
    5 print(str(tu),list(tu))
    6 """
    7 ('w', 'e', '3', '5', '1', '2', '3', 'f', 'e') ('aweb', 'egg')
    8 ('asfe', 'ewe') ['asfe', 'ewe']
    9 """

      列表转换为字符串的方式:

      ——写for 循环:既有字符串又有数字

      ——用.join() :只有字符串 

    .index()

      获取指定元素的索引,左侧优先

    .count()

      获得指定元素在元组中出现的次数

    元组和列表的使用情况:

      当创建的东西需要增、删、改时创建列表,当创建的东西不许修改时创建元组

    字典

    dict类

    info = {
        "k1":"v1",  #一个键值对
        "k2":"v2"
    }

      字典的value可以是任何值,数值、布尔值、字符串、列表、元组、字典......

      字典的key可以是数值、字符串、元组、布尔值(布尔值会被忽略)

      字典是无序的,即键值对的顺序是无序的

      支持用索引的方式查找元素,不能切片

     1 info = {
     2     "k1":"v1",  #一个键值对
     3     "k2":True,
     4     "k3":[7,86,9,(),{"kk1":4,"kk2":50}],
     5     True:(1,2,3,)
     6 }
     7 print(info)
     8 #{'k1': 'v1', 'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}
     9 v = info["k3"][4]["kk2"]
    10 print(v)
    11 #50

      支持删除

    1 del info["k1"]
    2 print(info)
    3 del info["k3"][4]["kk1"]
    4 print(info)
    5 """
    6 {'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}
    7 {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}
    8 """

    for 循环 + .keys()  .values() .items()

      默认for循环和 .keys()结果只有key

      for + .values()结果只有value

      for + .items()结果是键值对

     1 info = {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}
     2 for k in info:
     3     print(k)
     4     """
     5     k2
     6     k3
     7     True
     8     """
     9 for k in info.keys():
    10     print(k)
    11     """
    12     k2
    13     k3
    14     True
    15     """
    16 for v in info.values():
    17     print(v)
    18     """
    19     True
    20     [7, 86, 9, (), {'kk2': 50}]
    21     (1, 2, 3)
    22     """
    23 for k,v in info.items():
    24     print(k,v)
    25     """
    26     k2 True
    27     k3 [7, 86, 9, (), {'kk2': 50}]
    28     True (1, 2, 3)
    29 """

     .clear()

      清空

     

    .copy()

      浅拷贝

    dict.fromkeys() 

      根据序列创建字典,指定统一的值

    info = dict.fromkeys(["a",1,3],"t")
    print(info)
    #{'a': 't', 1: 't', 3: 't'}

    .get(key, c)

      根据key获取value,如果不存在此key则返回c,不指定c返回None

    .pop(key) .popitem()

      前者删除字典中某个键值对,且删除的这个value可以获取

      后者不可加参数,随机删除一对键值对,且可以获取删除的键值对

     .setdefault() 

      设置新键值对,如已存在则获取当前key的值,否则设置,且获取新key对应的值

    1 dic = {"k1":"v1","k2":"v2"}
    2 v = dic.setdefault("k3",123)
    3 print(dic,v)
    4 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} 123
    5 v1 = dic.setdefault("k1",123)
    6 print(dic,v1)
    7 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} v1

    .update()

      对字典进行更新,有两种使用方式

    1 dic = {"k1":"v1","k2":"v2"}
    2 dic.update({"k1":1,"k3":123})
    3 print(dic)
    4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
    1 dic = {"k1":"v1","k2":"v2"}
    2 dic.update(k1 = 1,k3 = 123)
    3 print(dic)
    4 #{'k1': 1, 'k2': 'v2', 'k3': 123}

    注意:参数写成**kwargs,说明Python会自动转成字典

  • 相关阅读:
    Zebra命令模式分析(一)  分析
    sublime text2
    开源路由软件zebra的命令存储原理及使用方法
    开源路由软件zebra介绍和和在Linux环境下的安装
    jQuery删除节点
    如何成为一名软件架构师
    jQuery中的DOM操作
    编写自己的Shell解释器
    Notepad++集成VC2010环境
    ffmpeg使用语法
  • 原文地址:https://www.cnblogs.com/jennifer224/p/12333624.html
Copyright © 2011-2022 走看看