python基础-4(字典,字符串,)

字典:

# 在python字典是除了列表以外最灵活的一种数据类型
# 列表一般用来存储有序的数据类型,字典用来存储无序的数据类型
# 上面所说的有序和无序指的是,就类似于数组和哈希表,我们关心数组中的元素顺序
# 但是我们只关心哈希表中根据key可以拿到哪些数据
name_TOM = {"姓名": "小明",
            "年龄": 50,
            "身高": 1.5}
print(type(name_TOM))
print(name_TOM)  # 输出顺序往往和我们的定义顺序不一样,因为人家本身内部就不关心排序顺序

# 取值
print(name_TOM["姓名"])
# 修改
# 修改的时候如果key不存在就会新增键值对,也就是说key不存在的话就类似于增加
name_TOM["姓名"] = "小红"
print(name_TOM["姓名"])
# 删除
name_TOM.pop("姓名")
print(name_TOM)
# 删除某一个元素
del name_TOM["身高"]
# 删除整个字典
del name_TOM
# 1.统计键值对的数量
print(len(name_TOM))
# 2.合并字典
temp_dict = {1: "姓名",
             2: "年龄",
             3: "身高"}
name_TOM.update(temp_dict)
# 注意在使用合并键值对操作的时候,如果需要合并的字典和原字典键值重名的话,就会覆盖原字典
print(name_TOM)
# 拷贝一个字典
name_TOM2 = name_TOM.copy()
print(name_TOM2)
# 打印所有的键值
print(name_TOM2.keys())
# 清空字典
name_TOM.clear()
print(name_TOM)

字典的常见操作:
在这里插入图片描述在这里插入图片描述
使用循环遍历字典:

# 使用循环遍历字典
# 一般应用中很少会对字典进行遍历
name_TOM = {"姓名": "小明",
            "年龄": 50,
            "身高": 1.5}
for k in name_TOM:  # k是每次循环遍历的时候的键值
    print("%s   %s" % (k, name_TOM[k]))
# 将多个字典放在一个列表中,再进行遍历
card_list = [
    {"姓名": "小刚",
     "年龄": "20",
     "身高": "1.85"},
    {"姓名": "小雷",
     "年龄": "28",
     "身高": "1.55"},
]
for into_card in card_list:
    print(into_card)
# 定义一个字符串变量
# 在python中不仅可以使用" "(双引号)来定义字符串变量
# 而且还可以使用' '(单引号)来定义字符串变量
str1 = "hello world"
# 对于想要输出的字符串中间有" "的时候,外面可以使用' '
str3 = "我的外号是\"大西瓜\""   # 但是这个太不美观了
str2 = '我的外号是"大西瓜"'
print(str1)
print(str2)
print(str3)
for c in str2:
    print(c)
# 1.统计字符串的长度
print(len(str2))
# 2.统计一个小字符串在大字符串中出现的次数
str4 = "hello hello hello"
print(str4.count("llo"))
# 3.某一子子字符串出现的位置,子字符串出现的第一个字符索引的位置
print(str4.index("llo"))

字符串的常用操作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 1.判断是不是空白字符
space_str = "   "
print(space_str.isspace()) # 判断一个字符串是不是只有空格
# 转义字符也属于空白字符

# 2.判断一个字符串是不是只包含数字
num_str = "1\u00b3一千零一"
# \u00b3指的就是上标
print(num_str)
print(num_str.isdecimal())  # 只能判断阿拉伯数字
print(num_str.isdigit())    # 不仅可以判断阿拉伯数字还可以判断unicode
print(num_str.isnumeric())  # 除了能判断上面的那种还可以判断汉字的数字
# 1>三个方法都不能判断小数
# 2>unicode 字符串
# 3>中文数字
# 按文本要求输出字符串
poem = ["登鹳雀楼",
        "王之涣",
        "白日依山尽",
        "黄河入海流",
        "欲穷千里目",
        "更上一层楼"]
for c in poem:
    print(c)
for c in poem:
        print("|%s|" % c.center(10))

字符串操作应对,从网络中抓取的数据:

# 1.拆分字符串
hello = "\n\thello \tworld \rpig \ndog \tapple \nphone\n"
# 首先将字符串中的所用的空白字符去掉,
# 然后再使用“ ”作为分隔符拼接成一个完整的字符串
hello2 = hello.split()  # 如果这里不指定去除什么分隔符的话,那么就会将所有的分隔符都去除掉
print(hello2)
hello3 = hello.split(" ")  # 指定空格的话那么就只能够将" "这种分隔符去掉
print(hello3)
# 2.合并字符串
hello4 = " ".join(hello2)  # 这里将已经去除掉分隔符的字符串拿过来直接进行拼接
# 这里指的就是拿空格拼接,当然你还可以指定其他的字符
print(hello4)
# 上面的这些操作的应用场景是在从网络上抓下的数据,进行处理
# 因为不同的协议可能规定的协议结尾标识符不一样有的是\r\n,
# 然后抓下来的数据就很不清晰,这样就可以使打印的数据很清晰

在这里插入图片描述

在这里插入图片描述
切片的格式:
在这里插入图片描述

# 字符串的切片
num_str = "123456789"
# 1.截取2-5之间的数字
new_num_str = num_str[1:5]
print(new_num_str)
# 2.截取2-末尾的字符串
new2_num_str = num_str[1:]
print(new2_num_str)
# 3.从开始位置截取到5的位置
new3_num_str = num_str[:5]  # 或者[0:5]也可以
print(new3_num_str)
# 4.截取完整的字符串
new4_num_str = num_str[:]
print(num_str)
# 5.从开始位置每个一个字符截取字符串
new5_num_str = num_str[0::2]  # 步长为2意思就是2个切一下
print(new5_num_str)  # 在哪个位置切片就取那个位置后面的元素
# 6.从索引1开始每隔一个取一个
new6_num_str = num_str[1::2]
print(new6_num_str)
# 截取2-末尾-1的字符
new7_num_str = num_str[1:-1]
print(new7_num_str)
# 截取字符串末尾的两个字符
new8_num_str = num_str[-2::]
print(new8_num_str)
# 通过切片获取字符串的逆序
new9_num_str = num_str[::-1]
print(new9_num_str)

内置函数:
在这里插入图片描述

# 返回的是True或者False
print("s" > "4")
# 值得注意的是两个字典之间是不可以比较大小的,其它类型都是可以的

在这里插入图片描述

# 对列表和元组进行切片
num1 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
num2 = num1[1::2]
print(num2)
num3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
num4 = num3[1::2]
print(num4)
# 不能对字典进行切片

在这里插入图片描述
在这里插入图片描述
完整的佛for循环语法:

# 完整的for循环语法
for num in [1, 2, 3, 4, 5, 6]:
    print(num)
    if num == 2:
        break
    # 只有for循环完毕,才会执行下面的语法不然就不会执行
    # 使用break退出的话就不会执行else
else:
    print("遍历完毕")
print("我是院长")
name_list = [{"姓名": "瘪三", "年龄": 20},
             {"姓名": "翔子", "年龄": 60},
             {"姓名": "犊子", "年龄": 40},
             {"姓名": "牛根", "年龄": 50}]
find_name = input("请输入你要查找的人的名字:")
for temp_name in name_list:
    if temp_name["姓名"] == find_name:
        print("找到了%s,%s在字典中,他的年龄是%d" % (find_name, find_name, temp_name["年龄"]))
        break
else:
    print("没找到%s,%s不在字典中" % (find_name, find_name))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值