Python入门到精通(三):数据结构第二部分

一、元组与集合

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)

方法3join方法

  • 用于将列表中的元素拼接字符串

  • 列表中的元素必须全部都是字符串类型,否则报错

  • 格式:"+".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()
    # 将用户输入的第一个字符转换为大写其余转换为小写

方法5split方法

  • 作用:将字符串转换为列表

  • split方法可以指定用哪个字符对字符串进行切割

str = "i love linux and pyhon"
str = str.split(" ")
# 指定用空格字符对字符串进行切割
print(str)
# 输出内容为 ['i', 'love', 'linux', 'and', 'pyhon']

方法6strip

  • 去除字符串两侧的空格

userinput =input("").strip
# 删除用户输入内容两侧的空格

 方法7判断

 isinstance(变量名,变量类型)

# 如果变量和类型一致,则返回真;否则返回假

猜你喜欢

转载自blog.csdn.net/weixin_67281781/article/details/123497700