一、元组

1.1 元组简介

特点:

  • 元组也是有序的数据结构【有先后顺序】
  • 可以通过偏移来获取元素
  • 元组是不可变的对象【不能原地修改】
  • 元组不能进行排序和修改操作【元组中的元素不能修改】

定义元组

元组名 = (元素,元素,元素,元素,)

特殊元组

  • 空元组
  • 有一个元素的元组
  • 区分乘法运算
a = []
 print(a)b = ()
 print(b)c = ("tom",)
 print(c)d = ("tom","jerry")
 print(d)s1 = 3*(1+4)
 print(s1)s2 = 3*(1+4,)
 print(s2)

1.2 元组操作

操作1:从元组中取数据

s = ("tom","jerr","bob","jack")
 name = s[2]
 print(name)
name = s[1:]
 print(name)

操作2:类型转换

  • 方法:tuple(列表)

案例:将元组的第三个元素修改为tuoni

s = ("tom","jerr","bob","jack")  #定义元组
li = list(s)                                # 转换为列表
li[2] = "tuoni"                         #修改元素
s = tuple(li)                          # 转换成元组print(s)

3.3 集合简介

集合的类别:

  • 不可变集合
  • 可变集合

集合的操作

  • 创建集合
  • 添加集合
  • 删除集合
  • 成员关系
  • 交集、差集、并集
  • 去重

3.4 集合的操作

操作1:创建集合

  • set() 创建的是不可变集合
  • frozenset() 创建的是可变集合
s = set("tom")     # 创建集合
print(s)

操作2:在集合添加元素

  • add:将目标作为整体添加到集合中
  • update:将目标拆分成一个一个的元素添加到集合中
s = set("tom")
 print(s)    # 输出结果 {'t', 'm', 'o'}s.add("jerry")    
 print(s)s.update("abc")
 print(s)s.update("aaaaaaaa")
 print(s)

操作3:删除集合中的元素

  • remove
s = set("tom")
 print(s)    # 输出结果 {'t', 'm', 'o'}s.remove("m")
 print(s)

操作4:成员关系

  • in
  • not int

操作5:交集并集差集

a = set("12345")
 b = set("24689")# 获取集合a 和 集合b中都有数字【交集】
 res = a & b
 print(res)# 获取集合a 和 集合b中的全部的数字,重复的数字只显示依一次【并集】
 res = a | b
 print(res)# 获取集合a 中有,但是基b中没有的数字【差集】
 res = a - b
 print(res)# 获取集合a 中有,但是基a中没有的数字【差集】
 res = b - a
 print(res)

操作6:去重

li = [7,1,2,1,3,1,1,9]    # 定义列表
res = set(li)             # 将列表转换成集合【集合有自动去重的特效,所以可以实现去重效果】
li = list(res)            # 将去重的结果再转换成列表
print(li)

二、字符串

2.1 基础特性

支持序列类型的所有基础操作

  • 切片
  • 索引
  • 加法
  • 乘法

定义字符串:

  • str = "xxxx"
str = "abcdefghigklmn"    # 定义字符串
str1 = str[3:7]           # 切片
print(str1)str2 = str[4]             # 索引
print(str2)s1 = "hello "
 s2 = "boys"
 s = s1 + s2               # 加法
print(s)print(s1 * 5)             # 乘法

查看数据类型

s = "abc"
 print(type(s))         # 输出类型是str,表示是字符串l = ["abc"]
 print(type(l))         # 输出类型是list,表示是列表t = ("abc",)          
 print(type(t))         # 输出类型是tuple,表示是元组d = {"name":"tom","age":18}
 print(type(d))

2.2 字符串操作

1)访问字符串的子串

  • 通过切片

案例:打印字符串的倒数第二个字符

s = "abcdefghijklnm"
 # 方法1
 print(s[-2])# 方法2
 num = len(s)
 print(s[num-2])

2)字符串替换

方法:

  • str.replace("目标","替换结果",[替换几个])

案例:将字符串中的c替换成1234

s = "abcdefghcjclnmc"
 s = s.replace("c","1234")      # 将全部的c都替换成123
print(s)s = s.replace("c","1234",2)    # 将前两个c替换成123
print(s)

3)字符串拼接

方法1:用 + 进行拼接

s1 = "aaa"
 s2 = "bbb"
 s3 = "ccc"
 s = s1 + s2 + s3
 print(s)

方法2:在输出的时候,用占位符进行拼接

s1 = "aaa"
 s2 = "bbb"
 s3 = "ccc"
 print("%s%s%s"%(s1,s2,s3))

方法3:结合列表的和join方法进行拼接

s1 = "aaa"
 s2 = "bbb"
 s3 = "ccc"
 s = "".join([s1,s2,s3])

方法4:格式化

s1 = "aaa"
 s2 = "bbb"
 s3 = "ccc"print("{}{}{}".format(s1,s2,s3))
print("{str1}{str2}{str3}".format(str1=s1,str2=s2,str3=s3))

2.3 字符串方法

方法1:find

  • 返回指定的字符在字符串中的索引值
  • 如果字符串中没有这个字符,会返回-1
  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止
  • 也可以指定从哪个字符开始查找
  • 格式:str.find("目标",[start])

案例:让用户随意输入一个字符串,字符串中必须有两个c,打印输出这两个字符的索引值

userInput = input("please enter something: ")
 num1 = userInput.find("c")
 num2 = userInput.find("c",num1+1)
 print(num1,num2)

方法2:index

  • 返回指定的字符在字符串中的索引值
  • 如果字符串中没有这个字符,会抛出异常
  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止
  • 也可以指定从哪个字符开始查找
  • 格式:str.index("目标",[start])

方法3:join方法

  • 用于将列表中的元素拼接字符串
  • 列表中的元素必须全部都是字符串类型,否则报错
  • 格式:"+".join(列表)

案例

l = ["1","a","qq","d"]
 s = "".join(l)
 print(s)

案例2:将列表l = ["a","qq","cd1",123, 3.14, "6"] 中的全部的元素转换为字符串类型【用两种方法实现】

li = ["a","qq","cd1",123, 3.14, "6"]
 for num in range(len(li)):
     li[num]=str(li[num])
 print(li)

案例3:将列表num = [1,3,5,7,9]中的内容输出成1+3+5+7+9

li=[1,3,5,7,9]
 for num in range(len(li)):
     li[num]=str(li[num])s="+".join(li)
 print(s)

方法4:大小写转换

  • lower:将内容全部转换为小写
  • upper:将内容全部转换为大写
  • title:将自带一个字母转换为大写,其他全部都自动转换为小写

方法5:split方法

  • 作用:将字符串转换为列表
  • split方法可以指定用哪个字符对字符串进行切割
str = "i love linux and pyhon"
 li1 = list(str)
 print(li1)li2 = str.split(" ")
 print(li2)li3 = str.split("o")
 print(li3)

方法6:strip

  • 去除字符串两侧的空格
num=input("输入: ")
s=num.strip()
print(s)

案例:让用户输入任意内容,将用户输入的内容中的全部空格剔除掉【至少两种方法】

num=input("输入: ")
s=num.replace(" ","")
print(s)

方法7:判断

isinstance(变量名,变量类型)