python公共操作符以及方法是什么
在Python中,公共操作通常指的是那些可以对不同数据类型(如数字、字符串、列表、元组、字典等)进行操作的通用函数或方法。这些操作符或函数通常是内置的,并且可以在Python的官方文档中找到。
主要内容又三种公共操作方式
- 运算符
- 公共方法
- 容器类型转换
公共操作就是数据序列基本上都支持的一些操作
常用的几种数据序列:字符串、列表、元组、字典
运算符
运算符 | 支持的容器类型 |
---|---|
+(合并) | 字符串、列表、元组 |
*(复制) | 字符串、列表、元组 |
in(元素是否存在) | 字符串、列表、元组、字典、集合 |
not in(元素是否不存在) | 字符串、列表、元组、字典、集合 |
+合并
示例代码如下
# 字符串
str1 = 'abc'
str2 = 'def'
# 列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 元组
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
输出如下
这里为什么没有字典呢?
那是因为字典不支持直接使用 + 拼接,字典在Python中是一种映射(mapping)类型,它存储了键(key)和值(value)的对应关系,而不是一种可迭代对象(如列表或元组)。字典的键和值之间没有固定的顺序,这意味着我们不能简单地将两个字典的键和值“拼接”在一起。
当你尝试使用 + 操作符来拼接两个字典时,Python会报错,因为它不知道如何合并两个键和值之间没有顺序的数据结构。与列表或元组不同,字典没有“顺序”的概念,因此不能简单地通过“+”操作符来合并。
具体字典应该使用什么方法会在下面讲解
* 复制
在Python中,* 符号具有多种用途,具体取决于其上下文。当涉及到复制时,* 符号主要用于复制列表、元组、字符串和其他可迭代对象。这种复制通常被称为“浅复制”,因为它只复制对象的最外层结构,而不复制嵌套的对象。
列表和元组的复制
对于列表和元组,* 符号可以用来创建这些集合的副本
示例代码如下
# 字符串
str1 = 'ikun'
# 列表
list1 = ['ikun']
# 元组
tuple1 = ('ikun',)# * 复制字符串
print(f'复制字符串:{str1 * 5}')
# * 复制列表
print(f'复制列表:{list1 * 5}')
# * 复制元组
print(f'复制元组:{tuple1 * 5}')
输出如下
从上面的示例可以看出,还是没有字典
和上面的的原因一样在Python中,* 操作符不能直接用来复制字典,因为字典是一种映射类型(mapping),而不是序列类型(sequence)。序列类型(如列表、元组和字符串)的元素可以通过索引访问,并且它们的长度是固定的,因此可以使用 * 操作符进行重复操作。然而,字典的元素是通过键(key)来访问的,而不是通过索引,而且字典的大小(即包含的键值对数量)是可变的。
由于字典没有固定的顺序,并且是通过键来访问元素的,所以使用 * 操作符来复制字典没有意义。
in 元素是否存在
在Python中,in 是一个成员运算符,用于检查某个元素是否存在于给定的集合(如列表、元组、字典、集合或字符串)中。如果元素存在于集合中,in 运算符返回 True,否则返回 False。
in 运算符的语法很简单:element in collection。这里,element 是你想要检查的元素,而 collection 是你想要搜索的集合。
完蛋,这人工智能不正经
牛逼
好了废话不多说,直接上代码示例
# 字符串
str1 = 'ikun is a good man, i love him'
# 列表
list1 =['ikun','is','a','good', 'man', 'i', 'love', 'him']
# 元组
tuple1 = ('ikun','is','a','good', 'man')
# 字典
dict1 = {'name': 'ikun', 'age': 18}
# 集合
set1 = {'ikun', 'is', 'a', 'good', 'man'}
# in 字符串指定数据存在
print(f'字符串指定数据存在:{"ikun" in str1}') # True
# in 字符串指定数据不存在
print(f'字符串指定数据不存在:{"bad" in str1}') # False
print('-'*30)# in 列表指定数据存在
print(f'列表指定数据存在:{4 in list1}') # True
# in 列表指定数据不存在
print(f'列表指定数据不存在:{8 in list1}') # False
print('-'*30)# in 元组指定数据存在
print(f'元组指定数据存在:{'ikun' in tuple1}') # True
# in 元组指定数据不存在
print(f'元组指定数据不存在:{99 in tuple1}') # False
print('-'*30)# in 字典指定数据存在
print(f'字典指定数据存在:{"name" in dict1}') # True
# in 字典指定数据不存在
print(f'字典指定数据不存在:{"sex" in dict1}') # False
print('-'*30)# in 集合指定数据存在
print(f'集合指定数据存在:{'ikun' in set1} ')
# in 集合指定数据不存在
print(f'集合指定数据不存在:{'v' in set1}')
输出如下
not in 元素是否不存在
“not in” 是Python中的一个成员运算符,用于检查某个元素是否不在给定的集合(如列表、元组、字典等)中。这个操作符返回一个布尔值:如果元素不在集合中,返回True;否则返回False。
"not in"操作符的一般语法是:element not in collection,其中element是要检查的元素,collection是要搜索的集合。
例如,如果我们有一个列表my_list = [1, 2, 3, 4, 5],我们可以使用"not in"来检查一个元素是否不在这个列表中,如6 not in my_list将返回True,因为6不在my_list中。
请注意,这与"in"运算符相反,"in"运算符用于检查元素是否存在于集合中。如果元素存在,它将返回True;如果元素不存在,它将返回False。
示例代码如下
# 字符串
str1 = 'ikun is a good man, i love him'
# 列表
list1 =['ikun','is','a','good', 'man', 'i', 'love', 'him']
# 元组
tuple1 = ('ikun','is','a','good', 'man')
# 字典
dict1 = {'name': 'ikun', 'age': 18}
# 集合
set1 = {'ikun', 'is', 'a', 'good', 'man'}
# not in 字符串指定数据存在
print(f'字符串指定数据存在:{"ikun" not in str1}') # False
# not in 字符串指定数据不存在
print(f'字符串指定数据不存在:{"bad" not in str1}') # True
print('-'*30)# not in 列表指定数据存在
print(f'列表指定数据存在:{'ikun' not in list1}') # False
# not in 列表指定数据不存在
print(f'列表指定数据不存在:{'bad' not in list1}') # True
print('-'*30)# not in 元组指定数据存在
print(f'元组指定数据存在:{'ikun' not in tuple1}') # False
# not in 元组指定数据不存在
print(f'元组指定数据不存在:{'bad' not in tuple1}') # True
print('-'*30)# not in 字典指定数据存在
print(f'字典指定数据存在:{"name" not in dict1}') # False
# not in 字典指定数据不存在
print(f'字典指定数据不存在:{"sex" not in dict1}') # True# not in 集合指定数据存在
print(f'集合指定数据存在{"ikun" not in set1}')
# not in 集合指定数据不存在
print(f'集合指定数据不存在:{"bad" not in set1}')
输出如下
python 公共方法
公共方法就是容器类型都支持使用的一些公共函数
函数 | 说明 |
---|---|
len() | 统计数据序列中元素个数 |
del/del() | 删除 |
max() | 返回容器中元素的最大值 |
min() | 返回容器中元素最小值 |
range(start, end, step) | 生成start到end的数字,步长为step |
enumerate(可迭代对象, start=0) | 将一个可迭代的数据对象(列表、元组、字符串)组合成一个索引序列,同时列出数据和数据的下标,配合for使用 |
len()
len() 是 Python 中的一个内置函数,用于返回对象(如字符串、列表、元组、字典等)的长度或元素个数。这对于了解数据结构的大小或长度非常有用。
示例代码如下
# 字符串
str1 = 'ikun is a good man, i love him'
# 列表
list1 =['ikun','is','a','good', 'man', 'i', 'love', 'him']
# 元组
tuple1 = ('ikun','is','a','good', 'man')
# 字典
dict1 = {'name': 'ikun', 'age': 18}
# 集合
set1 = {'ikun', 'is', 'a', 'good', 'man'}# 统计字符串字符个数
print(len(str1))
# 统计列表元素个数
print(len(list1))
# 统计元组字符个数
print(len(tuple1))
# 统计集合字符个数
print(len(set1))
输出如下
tips:
- 对于字符串,len() 返回字符的数量。
- 对于列表、元组、字典和集合,len() 返回元素的数量。
- 对于其他自定义对象,如果它们定义了 len() 方法,那么 len() 将返回该方法的结果。如果没有定义 __len__() 方法,尝试对自定义对象使用 len() 将引发 TypeError。
示例代码如下
# 自定义对象,并定义 __len__() 方法
class MyCollection: def __init__(self): self.items = [] def add(self, item): self.items.append(item) def __len__(self): return len(self.items) # 创建一个 MyCollection 对象,并添加一些元素
my_collection = MyCollection()
my_collection.add("apple")
my_collection.add("banana")
my_collection.add("cherry") # 使用 len() 获取 MyCollection 对象的元素数量
print(len(my_collection)) # 输出: 3
del/del()
在Python中,del 是一个内置语句,它用于删除对象的引用,从而释放内存。当你使用 del 语句时,你实际上是在告诉Python解释器:“我不再需要这个对象了,所以请释放与它相关的内存。”
del删除变量
删除变量:删除单个或多个变量的引用。
示例代码如下
x = 'ikun'
y = 'is a good man, i love him' del x # 现在 x 不再存在
print(x) # 这将引发一个 NameError,因为 x 已经被删除 del y # 现在 y 也不再存在
输出如下
删除列表、元组或字典中的元素:通过索引或键删除列表、元组或字典中的元素。
my_list = [1, 2, 3, 4, 5]
del my_list[1] # 删除索引为 1 的元素,即 2
print(my_list) # 输出: [1, 3, 4, 5] my_dict = {'a': 1, 'b': 2, 'c': 3}
del my_dict['b'] # 删除键为 'b' 的项
print(my_dict) # 输出: {'a': 1, 'c': 3}
tips:del 不能用于删除字符串中的字符,因为字符串是不可变的。
del 与其他删除方法的比较
- del:这是一个语句,用于删除对象的引用。它适用于任何类型的对象,包括变量、列表元素、字典项等。
- pop():这是一个列表方法,用于删除并返回列表中的最后一个元素(或指定索引的元素)。它只适用于列表。
- remove():这是一个列表方法,用于删除列表中的第一个匹配项。它只适用于列表。
- clear():这是一个字典方法,用于删除字典中的所有项。它只适用于字典。
max()
Python中的max()函数是一个内置函数,用于找出给定参数中的最大值。这个函数可以接受任意数量的参数,并且这些参数可以是数值或者是可迭代的对象,如列表、元组等。
当max()函数传入的是两个或多个数值时,它会返回其中的最大值。例如,max(3, 5, 7, 9)会返回9。
当max()函数传入的是字符串时,它会比较字符串的字典序,并返回最大的那个字符串。例如,max(“apple”, “banana”, “cherry”)会返回"cherry"。
当max()函数传入的是序列(如列表、元组)时,它会返回序列中的最大值。例如,max([1, 2, 3, 4, 5])会返回5。如果序列的元素是字符串,那么max()函数会返回字典序最大的字符串。
此外,max()函数还支持一个可选的关键字参数key,它定义了一个函数,该函数接收一个元素,并根据元素的某个属性进行比较。这使得你可以使用自己的函数来指定最大值的比较方式。
max找出两个或多个数值中的最大值
示例代码如下
# 找出三个数中的最大值
maximum_value = max(3, 5, 7)
print(maximum_value) # 输出: 7
输出如下
max找出字符串中的最大值(按字典序)
代码示例如下
# 找出三个字符串中的最大值
max_string = max("apple", "banana", "cherry")
print(max_string) # 输出: cherry
输出结果如下
max找出列表中的最大值
示例代码如下
# 找出列表中的最大值
numbers = [1, 2, 3, 4, 5]
max_number = max(numbers)
print(max_number) # 输出: 5
输出结果如下
max使用key参数自定义比较方式
key=len告诉max()函数使用len函数作为比较的依据,因此它会返回列表中长度最长的字符串。
示例代码如下
# 找出列表中长度最长的字符串
words = ["apple", "banana", "cherry", "date"]
max_length_word = max(words, key=len)
print(max_length_word) # 输出: banana
输出如下
在字典中使用max()函数
max()函数通过key=dictionary.get来根据字典的值来找出对应的键,因此它会返回字典中值最大的键。
# 找出字典中值最大的键
dictionary = {'a': 10, 'b': 5, 'c': 20, 'd': 15}
max_value_key = max(dictionary, key=dictionary.get)
print(max_value_key) # 输出: c
输出结果如下
min()
min() 函数是 Python 的另一个内置函数,用于找出给定参数中的最小值。与 max() 函数类似,min() 函数也可以接受任意数量的参数,并且这些参数可以是数值或者是可迭代的对象,如列表、元组等。
因为min函数和max函数使用方法一样,只不过是反着取,这里就不再过多介绍了
range(start, end, step)
range() 是 Python 中的一个内置函数,用于生成一个整数序列。这个序列从 start 开始(包含),到 end 结束(不包含),并且每次增加 step。
range() 函数的常见格式是 range(start, end, step),其中:
- start 是序列的起始值,如果不提供,默认为 0。
- end 是序列的结束值,但不包括该值本身。如果不提供,默认为序列的最后一个值。
- step 是序列中每个数字之间的差值,也就是步长。如果不提供,默认为 1。
代码示例如下
for i in range(5): print(i)
输出如下
使用 start 和 end
示例代码如下
for i in range(2, 6): print(i)
输出如下
使用 step
代码示例如下
for i in range(0, 10, 2): print(i)
输出结果如下
负数步长
示例代码如下
for i in range(5, 0, -1): print(i)
输出结果如下