Python字符串、列表、元组、字典

目录

1.字符串

字符串的定义

字符串的输出

字符串截取

 字符串的常用方法

2.列表

列表的定义及相关功能

列表与字符串的转换

列表推导式

3.元组

元组定义格式

元组知识点

4.字典

字典的定义

字典的用法

字典推导式


1.字符串

字符串的定义

a = '好好吃'
b = "hello python"
c = str("啦啦啦")

字符串的输出

str_01 = "小奇同学是最可爱的女孩子!"
print("取出第三个字:",str_01[2])
print("字符串的长度是:",len(str_01))

# 将字符串依次输出
i = 0
while i < len(str_01):
    print(str_01[i])
    i+=1

字符串截取

str[开始:结束:步长]:步长默认从左往右,如果步长为-1从右往左

单个取出: str_01[下标]:通过下标可以取出字符串里面的字符,下标从0开始 (默认从左往右)

多个取出: str_01[开始下标:结束下标]:包含开始,不包含结束,如果开始不写,默认从0开始,如果结束不写,默认到结尾 (默认从左往右)

从后往前取: 将步长改成 -1

print(str_01[0:2])
print(str_01[:2])
print(str_01[:])
print(str_01[::3])
print(str_01[::-1])
print(str_01[20000])

 字符串的常用方法

*重点:

myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
    myStr.find("is")   # 从字符串中查找is,默认从左往右查找,如果找到返回第一次出现的下标,如果不存在返回 -1
     myStr.rfind("is")  # 从字符串中查找is,右往左查找,如果找到返回第一次出现的下标,如果不存在返回 -1
     myStr.index("is")  # 从字符串中查找is的下标,默认从左往右,如果找到返回第一次出现的下标,如果找不到就报错
     myStr.rindex("is") # 从字符串中查找is的下标,右往左查找,如果找到返回第一次出现的下标,如果找不到就报错
     myStr.count("is")  # 从myStr中统计is出现的个数,如果存在返回个数,如果不存在返回0            myStr.startswith("hello")  # 判断myStr是否以hello开头
     myStr.endswith("kongkong") # 判断myStr是否以kongkong结束
     myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
     myStr.replace("is", "IS") # 将myStr中所有的is替换成IS,对原来的数据不会产生改变
     myStr.split(",")          # 将myStr按照","号进行切割成若干个部分
     myStr.splitlines()        # 将text按照换行符进行切割

     myStr = "my shenti is Rerere,\n my Koudai ,is kongkong"
     myStr.capitalize() # 将字符串myStr的首字母大写
     myStr.title()      # 将字符串的每一个单词的首字母大写
     myStr.lower()      # 将字符串统一转化成小写字母
     myStr.upper()      # 将字符串统一转化成大写字母

str_01 = "HONG KONG, March 15 Xinhua"
print("我的字符串为:"+str_01)
str_02 = str_01.find("15")                                     # 默认从左往右查找,如果找到返回第一次出现的下标,如果不存在返回 -1
print("str_01.find(15)输出:{}".format(str_02))
str_02 = str_01.rfind("H")                                     # 右往左查找,如果找到返回第一次出现的下标,如果不存在返回 -1
print("str_01.rfind(H)输出:{}".format(str_02))
print("="*20)

str_03 = str_01.index("Ma")                                  # 查找字符串下标,默认从左往右,如果找到返回第一次出现的下标,如果找不到就报错
print("str_01.index(Ma)输出:{}".format(str_03))
str_03 = str_01.rindex("Ma")                                  # 右往左查找
print("str_01.index(Ma)输出:{}".format(str_03))
print("="*20)

str_04 = str_01.count("a")                                      # 统计a出现的个数,如果存在返回个数,如果不存在返回0
print("str_01.count(a)输出:{}".format(str_04))
str_04 = str_01.startswith("HO")
print("str_01.startswith(HO)输出:{}".format(str_04))  # 判断字符串是否以HO开头
str_04 = str_01.endswith("HO")
print("str_01.endswith(HO)输出:{}".format(str_04))  # 判断字符串是否以HO结尾
print("="*20)

str_05 = str_01.replace("Ma","ma")                                   # 将字符串中所有的Ma替换成ma,对原来的数据不会产生改变
print("str_01.replace(Ma,ma)输出:{}".format(str_05))
str_05 = str_01.split(",")                                               # 按照","号进行切割成若干个部分
print("str_01.split( , ))输出:{}".format(str_05))
str_05 = str_01.splitlines()                                           # 按照换行符进行切割成若干个部分
print("str_01.splitlines() 输出:{}".format(str_05))
print("="*20)

print("我的字符串为:"+str_01)
print("判断a在str_01里面吗?")
print("a" in str_01)
print("判断a不在str_01里面吗?")
print("a" not in str_01)
print("="*20)

str_06 = str_01.partition(",")                                    # 将字符串按照默认从左往右出现的第一个","分割成若干部分,小没有删除
print(" str_01.partition(,)输出:{}".format(str_06))
str_06 = str_01.rpartition("a")                                  # 将字符串按照默认从左往右出现的第一个"a"分割成若干部分,小没有删除
print("str_01.rpartition(a) 输出:{}".format(str_03))
print("="*20)

myStr = "china successfully sends a new remote sensing satellite of the Yaogan-34 series into space from the Jiuquan Satellite Launch Center in Northwest China at 3:09 pm on March 17, 2022."
print("myStr为:"+myStr)
print("将字符串首字母大写:{}".format(myStr.capitalize()))
print("将字符串的每一个单词的首字母大写:{}".format(myStr.title()))
print("将字符串统一转化成小写字母:{}".format(myStr.lower()))         # 将字符串统一转化成小写字母
print("将字符串统一转化成大写字母:{}".format(myStr.upper()))        # 将字符串统一转化成大写字母
print("="*30)

print("      去除字符串左边的空格       ".lstrip())
print("      去除字符串右边的空格       ".rstrip())
print("      去除字符串两边的空格       ".strip())

print("="*20)
print("判断myStr中是否有特殊字符:{}".format(myStr.isalnum()))
print("判断myStr是否为纯字母:{}".format(myStr.isalpha()))
print("判断123497是否为纯数字")
print("123497".isdigit())

2.列表

列表的定义及相关功能

列表的定义:         它就是存储数据的一种容器,且对存储在其中的数据类型没有限制。

格式:[元素1; 元素2; 元素3; ......]

# 定义一个列表

list_test = list()     # 定义空列表

list_01 = ["姓名",12,True,1.2,["啦啦啦啦"],"@"]

print("输出列表:",list_01)      # 输出列表

 列表的功能:

append()函数:在列表的末尾添加数据

② insert()函数 : 在指定的位置插入内容

list_01.extend(list_02)函数:将list_02的元素合并到list_01里面,对liset_02没有影响

pop()函数:删除列表末尾的元素

remove()函数:删除列表中的指定内容

del list_01[1]:删除指定列表的指定下标的元素

sort:将列表中的数据由小到大排序

reverse:将列表中的数据由大到小排序

index:查询指定元素在列表中的下标,如果元素不存在就报错

代码示例:

list_01 = ["姓名",12,True,1.2,["啦啦啦啦"],"@"]
# 添加数据
list_01.append(6666)         # 在列表末尾添加6666
list_01.insert(3,"小明同学")  # 在列表第三个位置插入元素

# 定义两个列表
list_02 = ["我","是","不","是"]
list_03 = ["你","最","疼","爱","的","人"]
list_02.extend(list_03)     # 将list_03的元素添加到list_02里面

# 删除数据
list_01.pop()
print("执行一次pop",list_01)
list_01.remove(True)
print("执行一次remove",list_01)
del list_01[1]
print("执行一次del",list_01)

# 查询数据
print("查询下标为2的数据:",list_02[2])
print("查询从列表开始到结束的数据:",list_02[:])
print("查询从列表下标3开始到5结束的数据:",list_02[3:5])
print("反转列表",list_02[::-1])
# 将所有的数据依次输出
i = 0
while i < len(list_02):
    print(list_02[i])
    i+=1

print("for循环取出内容")
for j in list_02:
    print(j)
print("第二种for循环取出内容")
# 执行 range 括号中的那个数字的次数循环
for i in range(len(list_02)) :
    print(list_02[i])

# 修改数据
list_02[2] = "成年"
print("修改下标为2的数据",list_02)

# 判断该元素是否存在列表中 in not in
if "成年" in list_02:
    print("可以玩游戏")
else:
    print("请使用青少年模式!")

if "成年" not in list_02:
    print("请使用青少年模式!")
else:
    print("可以玩游戏")

# 列表排序
list_03 = [57,156,4568,53,7,2,45,2,23]
# list_03.sort() 这个函数没有返回值
list_03.sort()
print(list_03)
list_03.reverse()
print(list_03)

列表与字符串的转换

list(序列):将目标序列转换成列表
"目标".join(序列) :将目标序列内的元素一次取出和目标拼接成新的字符串

# 定义字符串
str1 = "hello"
# 定义空列表
list1 = []
# 传统做法
for i in str1:
    list1.append(i)
print(list1)

# 简单写法
list2 = list("hello")
print(list2)

# 将列表转换成字符串
list3 = ["h","e","l","l","o"]
# str2 = str(list3)  此方法会将列表当成一个整体进行转换
str2 = "".join(list3)
print(str2)

str3 = "123".join("我爱python")
print(str3)

列表推导式

格式1: value1 for i in data if 判断条件

   解释:value1:当条件成立时执行

              i:循环中的变量

              data:序列

              if:判断的条件

# 需求 获取0 - 20 之间的偶数乘以10,并统计所有得到的结果
# 传统写法
# 定义一个列表
numbers = []
for i in range(21):
    if i % 2 == 0:
        j = i * 10
        numbers.append(j)
print(numbers)
# 列表推导式格式1的写法
numbers_01 = [j = i * 10 for i in range(21) if i%2== 0]
print(numbers_01)

格式2:value1 if 判断条件 else value2 for 变量 data

  解释:value1:在for循环中,if条件成立则执行value1

             value2:在for循环中,if条件不成立则执行value2

# 获取0 - 20 之间的偶数乘以10,奇数乘以100 并统计所有得到的结果
# 传统写法
numbers_02 = []
for i in range(21):
    if i % 2 == 0:
        j = i * 10
        numbers_02.append(j)
    else:
        j = i * 100
        numbers_02.append(j)
print(numbers_02)
# 列表推导式格式2写法
numbers_03 = [i * 10 if i % 2 == 0 else i * 100 for i in range(21)]
print(numbers_03)

3.元组

元组定义格式

        (元素1,元素2,元素,3...)

元组知识点

        元组可以通过下标的方式查询,和字符串以及列表的方式一样
        元组和列表不一样,元组中的元素一但定义就是不可变
        元组中的元素跟列表一样是可以重复的

# 定义一个元组
tuple_1 = (1,2,3,3)  # 同类型数据
tuple_2 = (1,True,1.2,"我爱python")  # 不同类型
tuple_3 = tuple()  # 定义一个空元组

# 查询元组
# 通过下标查询
print("="*10,"元组的查询","="*10)
print("目标元组:",tuple_2)
print("查询下标为1的元素",tuple_2[-1])
for i in tuple_2:
    print(i)
for i in range(len(tuple_2)):
    print(tuple_2[i])
# 修改元组
# tuple_2[0] = 666   # 会报错:TypeError: 'tuple' object does not support item assignment
# 删除元组中的元素
# del tuple_2[0]    # 也会报错

4.字典

字典的定义

键值对:{key:value,key:value,key:value,....}

# 定义一个字典
dict1 = {"姓名":"老王","地址":"隔壁","性别":"男","爱好":"打球"}
print(dict1)
print("dict1的类型是:",type(dict1))

字典的用法

*注意

        1.字典的操作都是根据 key,所以字典的key是不能重复的
        2.字典里面的元素是无序的
        3.在字典添加元素时,如果key存在就覆盖value值,如果不存在就添加新的键值对
        4.字典的key的类型是不可变类型

                可变类型 : 列表、字典
                不可变类型 : 字符串、元组、数字类型

# 添加元素
dict1["电话"] = "123321"
print("添加没有的key",dict1)

# 修改元素
dict1["地址"] = "长沙"
print("添加已经有的key",dict1)

# 删除元素
del dict1["地址"]
print("删除地址",dict1)

# 查询元素
print("查询电话:",dict1.get("电话"))

① dict1.update(dict2):合并两个字典

② setdefault():在字典中插入一个值,如果这个key不存在就添加到列表里,如果存在就返回这个key对应的value值

③ dict1.keys():获取列表中所有的key值

④ dict1.values():获取列表中所有的value值

⑤ dict1.items():获取所有的key和value值

⑥ dict2 = dict1.copy():拷贝

⑦ dict3 = dict3.fromkeys(["姓名","地址","性别","年龄"]):根据括号内的内容(序列)创建key值,默认添加的value值为None

⑧ dict1.pop("姓名"):根据key值删除

⑨ dict1.popitem():删除最后一个元素

⑩ dict1.clear():清除整个字典

字典推导式

格式1:{value1 for 变量 in 序列 if 判断条件}

dict_source = {"a":10,"B":20,"C":True,"D":"hello python","e":"python"}

# 需求 提取字典中的小写key值的键值对
# 传统写法
dict1 = {}
for key,value in dict_source.items():
    if key.islower():   # 判断是否为小写
        dict1[key] = value  # 将元素添加到dict1中
# 字典推导式格式1写法
dict1_1 = {key:value for key,value in dict_source.items() if key.islower()}

格式2:value1 if 判断条件 else value2 for 变量 in 序列

# 需求 : 将所有小写的key的值都变成性别
# 传统写法
dict3 = {}
for key,value in dict_source.items():
    if key.islower():
        dict3[key] = "性别"
    else:
        dict3[key] = value
# 字典推导式格式2写法
dict4 = {key:"性别" if key.islower() else value for key,value in dict_source.items()}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TWAS@py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值