zoukankan      html  css  js  c++  java
  • day2 -- 字符串常用方法、列表、字典

    1.字符串常用方法

    name = "Convict abc"

      count(): print(name.count("c")) # 2  

      find(): print(name.find("a"))  # 8 

      index(): print(name.index("a")) # 8 如果找不到,会报错  

      根据下标区间取值: print(name[0: 4]) # Conv 

      format():

    new_name = "my new name is {name}"
    print(new_name.format(name="GG"))
    # my new name is GG

      isdigit():判断是否为数字

    print("11".isdigit())  # True
    print("abc".isdigit())  #False

      join():将要连接的元素序列、字符串、元组、字典 连接形成新的字符串

    print("==".join(["1", "a", "M"]))  # 1==a==M

      strip():去除首尾空格和换行

    print("   abc 
    ".strip())  # abc

      split():按照方法参数中的字符分割,返回分割后的列表

    print("1+2+a+c".split("+"))  # ['1', '2', 'a', 'c']

    2.列表:类似于C或者Java的数组(有序,可以通过下标取值)

    values = ["aaa", "bbb", "ccc"]

      然而列表也可以存放列表,例如:

    values = ["aaa", "bbb", "ccc", "ddd", "eee", "ddd", ["ddd", "eee"]]

      列表的常用方法

    # 按下标取
    # 正序
    print(values[0])
    print(values[1])
    # 负号表示逆着数,一般常用-1来取最后一个值
    print(values[-1])
    
    # 按下标区间取 [起始,终点),所以是不包括最后一个的
    # eg1:取下标 1, 2, 3 对应的值
    print(values[1:4])
    # eg2:-3对应bbb,-1对应ddd
    print(values[-3:-1])
    # eg3:如果取某一下标直到结尾,冒号之后不写下标即可
    print(values[-2:])
    # eg4:如果从起始位置起到某一指定位置,冒号前不写下标即可
    print(values[0:2])
    
    # 按下标,同时加步长
    print(values[0:-1:2])
    print(values[::2])
    print(values[:])
    
    # 增加
    values.append("OFF")
    print(values)
    values.insert(1, "INSERT")
    print(values)
    
    # 修改
    values[0] = "AAA"
    print(values)
    
    
    # 删除
    values.remove("OFF")  # 直接找这个值并且删除,找不到会报错
    print(values)
    
    del values[2]
    print(values)
    
    values.pop(-2)  # 取出,可以拿到对应下标的值,如果方法不传参,默认最后一个
    print(values)
    
    # 找下标位置,根据参数找,找不到报错
    print(values.index("ddd"))
    
    # 统计
    print(values.count("ddd"))
    
    # 清空
    values.clear()
    print(values)
    
    # 扩展
    values2 = ["!!!", "@@@"]
    values.extend(values2)
    print(values)
    
    # 排序, 特殊字符 > 数字 > 英文大写 > 英文小写, 即按照ASCII排序规则
    values.sort()
    print(values)
    
    # 反转
    values.reverse()
    print(values)
    
    # copy 只复制首层列表,多重列表的内层列表不复制,内层列表copy的都是同一个内存地址指针
    values3 = values.copy()
    print(values3)
    
    names = ["a", "b", ["MM", "NN"], "d"]
    names2 = names.copy()
    print(names)
    print(names2)
    
    names2[1] = "B"
    print(names)
    print(names2)
    
    names[2][0] = "123"
    print(names)
    print(names2)
    
    # (深copy)直接copy一个副本,数据大时最好不用这个,否则资源消耗大
    import copy
    names = ["a", "b", ["MM", "NN"], "d"]
    names2 = copy.deepcopy(names)
    print(names)
    print(names2)
    
    names[2][0] = "123"
    print(names)
    print(names2)
    
    # 元组tuple(只读列表),只能读的列表,没有增删改操作
    names = ("A", "B")
    print(names)
    
    # 查找字符在列表中的下标
    name = "abc"
    print(name.index("a"))  # 找不到直接报错
    print(name.find("d"))   # 找不到返回-1

    3.字典: key-value 形式的数据类型,键值对类型,类似于json格式,(无序,通过key取值)例如:

    person1 = {
        "name": "AAA",
        "age": 12,
        "addr": "China"
    }

      然而字典存放的也可以是字典,例如:

    people = {
        "p1": person1,
        "tel": 888666000
    }

      对字典取值:

        ①知道key,直接 字典[“key”]取值,如:

    print(person1["age"])  # 12
    # 但如果这key是不存在的,则会报错,如 print(person1["bbb"]) 会直接报错

        ②.get()方法

    print(person1.get("age"))  # 12
    print(person1.get("aaa"))  # None
    # .get()可以传字典中不存在的key,返回 None,取值时候建议用这个方法

      对字典删除:

        ①知道key,直接 字典[“key”]取值,如:

    del person1["aaa"]  # 删除key为aaa的整个值,如果key不存在,则会报错

        ②.pop()方法,取出字典中指定的key以及key所对应的值,所以这个方法是有返回值的,且原字典会移除对应的key及value,如果key不存在则报错

    person1.pop("age")  # 12

        ③.popitem()方法,随机取出key以及key所对应的值,有返回值,原字典会移除对应的key及value

    person1.popitem()  # 随机的

      对字典增加:类似json,直接往字典添加key跟value即可

    person1["salary"] = 4500

      对字典修改:

    person1["name"] = "new Name"  # 如果key是原字典不存在的,就变成了增加

      

  • 相关阅读:
    Homebrew 更改国内阿里源
    Java数组以及内存分配
    Django-Scrapy生成后端json接口
    MySQL必知必会(1-12章)
    招聘网站爬虫模板
    ubuntu之jupyter notebook配置
    服务器基本配置(ubuntu)
    Typora+PicGo+码云Gitee搭建本地博客环境
    redis缓存雪崩,穿透,击穿。整理篇
    鼠标修复升级记录(下)
  • 原文地址:https://www.cnblogs.com/convict/p/10260919.html
Copyright © 2011-2022 走看看