Python-day4:元组、字符串、字典

# 2021年11月30日,第二周9~12
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import copy
import random


def day4_case1():
    # 元组--元组和列表也是存一组数,只不过它一旦创建不可修改,所以又叫只读列表
    # 元组常用有2个方法,一个是count,一个是index
    name = ("小弟", "大姐", "小弟", "小妹")
    count_number = name.count("小弟")  # 统计元素个数
    index_namber = name.index("大姐")  # 寻找元素下标
    print("个数%d,下标%d" % (count_number, index_namber))


def day4_case2():
    # 字符串操作
    name = "my Name is number001"
    print(name.capitalize())  # 首字母大写
    print(name.casefold())  # 返回所有字符为小写
    print(name.lower())  # 返回所有字符为小写
    # 两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,
    # 对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
    print(name.upper())  # 返回所有字符为大写
    print(name.count("a"))  # 统计字符串出现次数
    print(name.find("a"))  # 查找字符串返回其索引
    print(name.rfind("a"))  # 返回字符串最后一次出现的位置
    print(name.index("a"))  # 查找字符串返回其索引
    print(name.center(50, "-"))  # 返回一个长度为width的居中字符串。填充使用指定的填充字符(默认为空格)。
    name = "    my Name is number001   \n"
    print(name.strip())  # 去掉开头与结尾空白
    tips = "123"
    print(tips.isdigit())  # 判断字符串是否为整数
    print(tips.isnumeric())  # 判断字符串是否为整数
    tips = "    "
    print(tips.isspace())  # 判断是否为空白字符串
    tips = "Ba Ba"
    print(tips.istitle())  # 如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
    tips = "BA CA"
    print(tips.isupper())  # 如果字符串都是大写,则返回 True,否则返回 False
    tips = "AbcAbcAbc"
    print(tips.swapcase())  # 大小写互换
    print(tips[::-1])  # 字符串反转输出
    print(tips.replace('b', 'D', 2))  # 替换字符串,老字符串,新字符串,替换次数
    print(tips.replace('b', ''))  # 删除字符串,将其替换为空
    print(tips.split('b'))  # 将字符串以某个分隔符号转为列表
    s1 = "-"
    seq = ["r", "u", "n", "o", "o", "b"]  # 字符串序列
    print(s1.join(seq))  # str.join(sequence)返回通过指定字符连接序列中元素后生成的新字符串。
    print(s1.join(seq).split('-'))  # 将字符串以某个分隔符号转为列表
    p = str.maketrans("abc", "123")  # 字符串映射,a对应1,b对应2,c对应3
    print("dddabcddd".translate(p))  # 字符串显示映射,a对应1,b对应2,c对应3
    print("abc abc".title())  # 将各个单词的首字母转为大写


def day4_case3():
    # 字典操作
    # key:value,key值不可相同,否则覆盖上一数据;key尽量不要写中文,否则可能因字符编码原因报错
    # Python 3.5及之前版本,字典是无序的;3.6以后为有序
    info = {
        "001": "徐达",
        "002": "张大",
        "003": "毛xian",
        "003": "毛线",
    }
    info1 = {
        "001": "张大",
        "002": "徐达",
        "005": "全蛋",
    }

    print(info["002"])  # 查询字典数据
    print("003" in info)  # 判断字典是否存在该key键值
    print(info)
    info["001"] = "徐大"  # 修改字典数据
    info["004"] = "徐小"  # 增加数据
    del info["004"]  # 删除数据
    info["004"] = "徐小"  # 增加数据
    info.pop("004")  # 删除数据
    info.popitem()  # python3.6以上版本删除最后以一个数据,python3.5以下版本随机删除一个数据
    print(info)
    print(info.keys())  # 获取key
    print(info.values())  # 获取values
    print(info.update(info1), info)  # 更新/合并列表
    print(info.items())  # 返回可遍历的(键, 值) 元组数组。
    for key in info:  # 遍历打印字典
        print(key, info[key])
    for k, v in info.items():  # 会先把dict转成元组,然后再遍历,数据里大时莫用
        print(k, v)
    print(dict.fromkeys([6, 7, 8], "test"))  # 初始化一个列表
    # 坑1:示例1
    dict_str = dict.fromkeys([6, 7, 8], ["test", "123", "456"])
    print(dict_str)
    dict_str[7][1] = "567"  # 字典中的所有值都会被改变,因为共用一个地址
    print(dict_str)
    # 坑1:示例2
    dict_str = dict.fromkeys([6, 7, 8], {123: "123", 124: "456"})
    print(dict_str)
    dict_str[7][123] = "567"  # 字典中的所有值都会被改变,因为共用一个地址
    print(dict_str)
    # 除非只有一层
    dict_str = dict.fromkeys([6, 7, 8], "test")
    print(dict_str)
    dict_str[7] = "567"  # 只有一层不会其他值不会被影响
    print(dict_str)


def day4_case4():
    # 字典嵌套操作
    # key:value,key值不可相同,否则覆盖上一数据;key尽量不要写中文,否则可能因字符编码原因报错
    # Python 3.5及之前版本,字典是无序的;3.6以后为有序
    av_catalog = {
        "1111": {
            "xxxx1": ["1111", "1111"],
            "xxxx2": ["2222", "2222"],
            "xxxx3": ["3333", "3333"],
            "xxxx4": ["4444", "4444"]
        },
        "222": {
            "xxxxx": ["5555", "5555"]
        },
        "333": {
            "xxxxx": ["6666", "6666"]
        }
    }
    print(av_catalog)
    av_catalog["1111"]["xxxx1"][1] = "可以在国内做镜像"  # 修改字典值
    print("修改字典值", av_catalog)
    av_catalog.setdefault("sdx", {"sdx", "回归", "很好"})  # 插入新值1,这个时候第二层级字典为无序
    print("插入新值1", av_catalog)
    av_catalog.setdefault("xxs", {"xxs": ["回归", "很好"]})  # 插入新值2
    print("插入新值2", av_catalog)
    print("获取key", av_catalog.keys())  # 获取key
    print("获取values", av_catalog.values())  # 获取values


if __name__ == '__main__':
    day4_case3()
    day4_case4()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值