一、元组与集合
1.1 元组介绍
特点:
元组也是有序的数据结构(有先后顺序)
可以通过偏移来获取元素
元组是不可变对象(不可直接进行修改)
元组不能进行排序和修改操作(元组中的元素不可修改
定义元组
元组名 = (元素,元素,元素,)
特殊元组
空元组
tuple = (,) #定义一个空元组
有一个元素的元组
tuple = (1,) #定义只有一个元素1的元组,必须加逗号否则会定义为一个字符串
1.2元组操作
操作1:从元组中获取数据
tuple = ("tom","jerr","bob","jack")
#定义一个元组
name = tuple[0]
#定义变量name中的值为元组tuple索引值为零的元素
print(name)
#输出变量name
操作2:类型转换
有时候我们想要修改元组中的元素需要通过类型转换才能完成
方法:tuple(列表)
tuple1 = ("tom","jerr","bob","jack")
# 定义一个元组
list1 = list(tuple1)
# 将元组转换为列表
list1[0] = "tuoni"
# 将列表索引值为0的元素替换成tuoni
tuple1 = tuple(list1)
# 将列表转换为元组
print(tuple1)
# 输出元组 输出结果为 ('tuoni', 'jerr', 'bob', 'jack')
1.3 集合简介
集合的类别:
-
不可变集合
-
可变集合
集合的操作
-
创建集合
-
添加集合
-
删除集合
-
成员关系
-
交集、差集、并集
-
去重
1.4 集合的操作
操作1 :创建集合
set()创建的是不可变集合
set_1 = set("tom")
#创建一个不可变集合set_1
frozenset()创建的是可变集合
set_2 = frozenset("jack")
# 创建一个不可变集合set_2
操作2 : 在集合中添加元素
add:将目标作为整体添加到集合中
set_1 = set("tom")
# 创建一个合集
set_1.add("bob")
# 将bob放入合集set_1中
print(set_1)
# 输出结果为{'o', 'm', 't', 'bob'}
update:将目标拆分为一个一个元素添加到集合中
set_1 = set("tom")
# 创建一个合集
set_1.update("jack")
# 将jack放入合集中
print(set_1)
# 输出结果是 {'m', 'o', 'c', 'j', 'k', 'a', 't'}
操作3 :删除合集中的元素
合集名.remove(元素)
set_1 = set("tom")
# 创建合集
set_1.remove("t")
# 删除合集set_1中的"t"
print(set_1)
# 输出内容为{'m', 'o'}
操作4 : 成员关系
in\not int
set_1 = set("tom")
# 创建一个集合
if "o" in set_1:
# 判断集合set_1是否有o
print("集合中有o")
# 有"o"输出集合中有o
else:
print("集合中没o")
# 没有"o"输出集合中没o
操作5 :交集并集差集
交集
set_1 = set("123456")
set_2 = frozenset("456789")
res = set_1 & set_2
# 获取集合 set_1 和 set_2都有的数字
print(res)
# 输出结果为 {'6', '4', '5'}
并集
set_1 = set("123456")
set_2 = frozenset("456789")
res = set_1 | set_2
# 获取集合set_1 和 set_2 集合中的全部内容,合集会自动去除重复元素
print(res)
# 输出结果是 {'1', '7', '3', '2', '5', '9', '4', '8', '6'}
差集
set_1 = set("123456")
set_2 = frozenset("456789")
res = set_1 - set_2
# 获取集合set_1中有但是set_2中没有的数字
print(res)
# 输出结果是 {'2', '1', '3'}
操作6 :去重
list_1 = [1,2,1,2,3,4,6,8,7,]
# 创建一个列表
s = set(list_1)
# 将列表转换为元组
list_1 = list(s)
# 将元组转换为列表
print(list_1)
# 输出内容是 [1, 2, 3, 4, 6, 7, 8]
元组带有自动去除重复元素的特性
二、字符串
2.1基础特性
字符串支持序列类型的所有基础操作:切片、索引、加法、乘法、
自定义字符串
str = "abc" #定义字符串
查看数据类型
type(变量名)
str = "abc"
type(str)
# 输出结果为str,表示为字符串类型
l = ["abc"]
print(type(l))
# 输出结果为list,表示为列表类型
t = ("abc",)
print(type(t))
# 输出结果为tuple,表示为元组类型
d = {"name":"tom","age":18}
print(type(d))
# 输出结果为dict,表示为字典类型
2.2 字符串操作
1.字符串替换
方法:
str.replace("目标","替换结果",[替换几个])
str = "abcabcabc"
str.replace("a","d",2)
# 将str中的"a"替换为"d"替换两个
print(str)
# 输出内容是abcabcabc
2.字符串拼接
方法一:使用+法进行拼接
str = "abc"
str_1 = "abc"
str =str_1 +str
方法2:在输出时使用占位符拼接
str = "hallo "
str_1 = "word"
print("%s%s"%(str,str_1))
方法三:格式化
str = "hallo "
str_1 = "word"
print("{}{}".format(str,str_1))
方法四:结合列表和join方法拼接
str = "hallo "
str_1 = "word"
str_2 =" ".join([str,str_1])
print(str_2)
2.3字符串方法
方法1:find
-
返回指定的字符在字符串中的索引值
-
如果字符串中没有这个字符,会返回-1
-
默认情况下,会从最左侧开始查找,找到第一个字符后,会停止
-
也可以指定从哪个字符开始查找
-
格式:str.find("目标",[start])
str = "hallo "
number = str.find("h")
# 在字符串中索引"h"返回值是他的索引值或-1
print(number)
方法2: index
-
返回指定的字符在字符串中的索引值
-
如果字符串中没有这个字符,会抛出异常
-
默认情况下,会从最左侧开始查找,找到第一个字符后,会停止
-
也可以指定从哪个字符开始查找
-
格式:str.index("目标",[start])
str = "hallo "
number = str.index("h")
# 在字符串中索引"h"返回值是他的索引值或抛出异常
print(number)
方法3:join方法
-
用于将列表中的元素拼接字符串
-
列表中的元素必须全部都是字符串类型,否则报错
-
格式:"+".join(列表)
list_1 = ["h","a","l","l","o"]
str = "".join(list_1)
# 拼接列表元素
print(str)
# 输出内容为 hallo
方法4:大小写转换
-
lower:将内容全部转换为小写
userinput = input("").lower() # 将用户输入转换为小写
-
upper:将内容全部转换为大写
userinput = input("").upper # 将用户输入全部转换为大写
-
title:将开头第一个字母转换为大写,其他全部都自动转换为小写
userinput = input("").title() # 将用户输入的第一个字符转换为大写其余转换为小写
方法5:split方法
-
作用:将字符串转换为列表
-
split方法可以指定用哪个字符对字符串进行切割
str = "i love linux and pyhon"
str = str.split(" ")
# 指定用空格字符对字符串进行切割
print(str)
# 输出内容为 ['i', 'love', 'linux', 'and', 'pyhon']
方法6:strip
-
去除字符串两侧的空格
userinput =input("").strip
# 删除用户输入内容两侧的空格
方法7:判断
isinstance(变量名,变量类型)
# 如果变量和类型一致,则返回真;否则返回假