# 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()
Python-day4:元组、字符串、字典
最新推荐文章于 2023-04-11 15:10:21 发布