Python基础必备之最新的73个内置函数(5)

目录

list()

locals()

map()

max()

memoryview()

min()

next()

object()

oct()

open()


Python 解释器内置了很多函数和类型(一共73个内置函数),任何时候都能使用。本篇将介绍第41到第50个内置函数的作用、特性以及详细的使用方法,并给出对应的代码示例。

前面的文章已经介绍了前40个内置函数,以及介绍了一些基本概念的说明,详细的请参考前面几篇文章

Python基础之最新的73个内置函数(1)

Python基础之最新的73个内置函数(2)

Python基础之最新的73个内置函数(3)

Python基础之最新的73个内置函数(4)

Python基础之最新的73个内置函数(5)

Python基础之最新的73个内置函数(6)

Python基础之最新的73个内置函数(7)

注意:本代码示例均在当前最新版本Python3.11上运行的结果。

Python专栏:https://blog.csdn.net/zhouruifu2015/category_5742543.html

list()

1. 作用

list()函数用于将一个可迭代对象转换为列表。它可以用于将元组、集合、字典等可迭代对象转换为列表。

2. 特性

- list()函数接受一个可迭代对象作为参数,返回一个列表。

- 如果可迭代对象是一个字符串,list()函数会将字符串中的每个字符作为一个元素添加到列表中。

- 如果可迭代对象是一个字典,list()函数会将字典中的键作为元素添加到列表中。

- 如果可迭代对象已经是一个列表,list()函数会直接返回该列表。

3. 详细用法

示例代码:

from inner_module_def_datastruct import WEIXIN_URL

my_tuple = (1, 2, 3, 4, 5)

my_set = {111, 222, 333, 444, 555}

my_dict = {'name': 'SteveRocket', 'age': 18}

my_list = [11,22,33,44,55]

# 使用list()函数将元组转换为列表

my_list1 = list(my_tuple)

print(my_list1)  # 输出:[1, 2, 3, 4, 5]

# 使用list()函数将集合转换为列表

my_list2 = list(my_set)

print(my_list2)  # 输出:[555, 333, 111, 444, 222]

# 使用list()函数将字典的键转换为列表

my_list3 = list(my_dict)

print(my_list3)  # 输出:['name', 'age']

# 使用list()转换列表,输出还是列表

print(list(my_list)) # [11, 22, 33, 44, 55]

# 使用list()转换字符串

print(list(WEIXIN_URL))

在上面的示例代码中,我们分别使用list()函数将元组、集合和字典的键转换为列表。需要注意的是,如果可迭代对象已经是一个列表,list()函数会直接返回该列表。

locals()

1. 作用

locals()函数用于返回当前作用域中的所有局部变量和它们的值。它可以用于调试代码,查看当前作用域中的变量和值。

2. 特性

- locals()函数返回一个字典,其中包含当前作用域中的所有局部变量和它们的值。

- 如果在函数外部调用locals()函数,它将返回全局作用域中的所有变量和值。

- locals()函数只能在函数内部调用,不能在函数外部调用。

3. 详细用法

示例代码:

from inner_module_def_datastruct import WEIXIN_URL
# locals()函数的使用示例
def my_func():
    blog = WEIXIN_URL
    name = 'SteveRocket'
    age = 18
    print(locals())

my_func()  # 输出:{'blog': 'https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q', 'name': 'SteveRocket', 'age': 18}

# 用在此处locals与globals的输出结果一样
print(locals())
print(globals())

在上面的示例代码中,我们定义了一个函数my_func(),在函数内部定义了两个局部变量name和age,并使用locals()函数打印了当前作用域中的所有局部变量和它们的值。

需要注意的是,locals()函数只能在函数内部调用,不能在函数外部调用。如果在函数外部调用locals()函数,它将返回全局作用域中的所有变量和值。

locals() 和 globals() 的区别

locals() 和 globals() 都是 Python 内置函数,用于获取当前作用域内的变量和函数。它们的区别在于:

- locals() 函数返回一个字典,包含了当前作用域内的所有变量和函数。

- globals() 函数返回一个字典,包含了全局作用域内的所有变量和函数。

例如:

def my_func():
    x = 1
    print(locals())  # {'x': 1}
    print(globals())  # {...} 全局作用域的字典

my_func()

在上面的示例中,我们定义了一个函数 my_func(),该函数包含了一个变量 x。在函数内部,我们分别使用 locals() 和 globals() 函数来获取当前作用域和全局作用域内的变量和函数。

map()

1. 作用

map()函数用于对一个序列中的每个元素进行操作,并返回一个新的序列。它可以用于对列表、元组等序列中的每个元素进行操作。

2. 特性

- map()函数接受一个函数和一个序列作为参数,返回一个新的序列。

- map()函数将函数应用于序列中的每个元素,并将结果作为一个新的序列返回。

- 如果序列中的元素是多个序列,map()函数将对多个序列中的元素进行操作,并返回一个新的序列。

3. 详细用法

示例代码:

# map()函数的使用示例

def square(x):

    return x ** 2

my_list = [1, 2, 3, 4, 5]

# 使用map()函数对列表中的每个元素进行平方操作

result = map(square, my_list)

print(list(result))  # 输出:[1, 4, 9, 16, 25]

在上面的示例代码中,我们定义了一个函数square(),用于对一个数进行平方操作。然后,我们定义了一个列表my_list,使用map()函数对列表中的每个元素进行平方操作,并将结果作为一个新的列表返回。

需要注意的是,如果序列中的元素是多个序列,map()函数将对多个序列中的元素进行操作,并返回一个新的序列。

reduce是Python2的内置函数,在Python3中已被遗弃。

max()

1. 作用

max()函数用于返回给定可迭代对象中的最大值。它可以用于对数字、字符串等可比较的对象进行比较。

2. 特性

- max()函数接受一个或多个参数,并返回其中的最大值。

- 如果给定的可迭代对象为空,max()函数将引发ValueError异常。

- max()函数可以接受一个key参数,用于指定比较方式。

3. 详细用法

示例代码:

# max()函数的使用示例

my_list = [1, 3, 5, 7, 9]

# 返回列表中的最大值

print(max(my_list))  # 输出:9

# 返回列表中的最大字符串值

infos = ["https", "zhouruifu2015", "blog.csdn.net"]

print(max(infos))  # zhouruifu2015

my_str = 'SteveRocket Python3.11'

# 返回字符串中的最大字符

print(max(my_str))  # 输出:y

my_dict = {'name': 'Tom', 'age': 18}

my_dict2 = {123: 'steverocket', 456: 'rocket'}

# 返回字典中的最大键

print(max(my_dict))  # 输出:name

print(max(my_dict2))  # 输出:456

在上面的示例代码中,我们分别使用max()函数返回了列表、字符串和字典中的最大值。需要注意的是,如果给定的可迭代对象为空,max()函数将引发ValueError异常。

此外,max()函数可以接受一个key参数,用于指定比较方式。示例代码:

# max()函数的key参数示例

my_list = ['apple', 'banana', 'orange', 'watermelon']

# 返回列表中长度最长的元素

print(max(my_list, key=len))  # 输出:watermelon

# 如果列表里面存在两个相同长度的字符串 则返回列表中第一个出现的元素

print(max(infos, key=len))  # blog.csdn.net

在上面的示例代码中,我们使用key参数指定了比较方式,返回了列表中长度最长的元素。

memoryview()

1. 作用

memoryview()函数用于返回一个内存视图对象,可以用于对可变序列进行操作。

2. 特性

- memoryview()函数接受一个可变序列作为参数,并返回一个内存视图对象。

- 内存视图对象可以用于对可变序列进行操作,如切片、赋值等。

- 内存视图对象可以用于高效地操作大型数据集合,而不需要复制原始数据。

3. 详细用法

示例代码:

# memoryview()函数的使用示例

my_list = [1, 2, 3, 4, 5]

# 创建一个内存视图对象

my_view = memoryview(bytearray(my_list))

# 对内存视图对象进行切片操作

my_slice = my_view[1:3]

print(my_slice, type(my_slice)) #<memory at 0x000002742382F280> <class 'memoryview'>

# 对内存视图对象进行赋值操作

my_view[2] = 10

print(my_list)  # 输出:[1, 2, 3, 4, 5]

print(list(my_view), type(my_view))  # [1, 2, 10, 4, 5] <class 'memoryview'>

在上面的示例代码中,我们使用memoryview()函数创建了一个内存视图对象,并对其进行了切片和赋值操作。需要注意的是,内存视图对象可以用于高效地操作大型数据集合,而不需要复制原始数据。

min()

1. 作用

min()函数用于返回给定可迭代对象中的最小值。它可以用于对数字、字符串等可比较的对象进行比较。

2. 特性

- min()函数接受一个或多个参数,并返回其中的最小值。

- 如果给定的可迭代对象为空,min()函数将引发ValueError异常。

- min()函数可以接受一个key参数,用于指定比较方式。

3. 详细用法

示例代码:

from inner_module_def_datastruct import WEIXIN_URL

# min()函数的使用示例

my_list = [1, 3, 5, 7, 9]

# 返回列表中的最小值

print(min(my_list))     # 输出:1

my_str = 'python'

# 返回字符串中的最小字符

print(min(my_str))      # 输出:h

print(min(WEIXIN_URL))  # 输出:.

my_dict = {'name': 'steverocket', 'age': 18}

# 返回字典中的最小键

print(min(my_dict))  # 输出:age

t1 = (WEIXIN_URL)

print(min(t1))      # 输出:.

# s1 = {1, 6, 3, 9, 3, 7, ""}   # TypeError: '<' not supported between instances of 'str' and 'int'

# s1 = {1, 6, 3, 9, 3, 7, 'a'}   # TypeError: '<' not supported between instances of 'str' and 'int'

s1 = {1, 6, 3, 9, 3, 7}

print(min(s1))      # 1

在上面的示例代码中,我们分别使用min()函数返回了列表、字符串和字典中的最小值。需要注意的是,如果给定的可迭代对象为空,min()函数将引发ValueError异常。

此外,min()函数可以接受一个key参数,用于指定比较方式。示例代码:

# min()函数的key参数示例

my_list = ['apple', 'banana', 'orange', 'watermelon']

# 返回列表中长度最短的元素

print(min(my_list, key=len))  # 输出:apple

在上面的示例代码中,我们使用key参数指定了比较方式,返回了列表中长度最短的元素。

next()

1. 作用

next()函数用于返回可迭代对象中的下一个元素。它可以用于对列表、字符串等可迭代对象进行迭代操作。

2. 特性

- next()函数接受一个可迭代对象作为参数,并返回其中的下一个元素。

- 如果可迭代对象已经迭代完毕,next()函数将引发StopIteration异常。

- next()函数可以接受一个默认值参数,用于在可迭代对象已经迭代完毕时返回一个默认值。

3. 详细用法

示例代码:

# next()函数的使用示例

my_list = [1, 2, 3, 4, 5]

# 创建一个迭代器对象

my_iter = iter(my_list)

print(type(my_iter))

# print(len(my_iter))  #TypeError: object of type 'list_iterator' has no len()

# list(my_iter)  # 使用next前不能使用list进行操作

# 返回迭代器中的下一个元素

print(next(my_iter))  # 输出:1

# 返回迭代器中的下一个元素

print(next(my_iter))  # 输出:2

# 返回迭代器中的下一个元素,并指定默认值

print(next(my_iter, 'end'))  # 输出:3

# 返回迭代器中的下一个元素

print(next(my_iter))  # 输出:4

# 返回迭代器中的下一个元素

print(next(my_iter))  # 输出:5

# 返回迭代器中的下一个元素,并引发StopIteration异常

print(next(my_iter))  # 引发StopIteration异常

在上面的示例代码中,我们使用next()函数对列表进行迭代操作。需要注意的是,如果可迭代对象已经迭代完毕,next()函数将引发StopIteration异常。此外,next()函数可以接受一个默认值参数,用于在可迭代对象已经迭代完毕时返回一个默认值。

object()

1. 作用

object()函数用于创建一个空的对象。它是所有类的基类,也可以用于检查对象是否为Python内置类型。object() 是 Python 内置函数,用于创建一个空对象。它没有任何属性和方法,只是一个空的对象。

2. 特性

- object()函数不接受任何参数,它返回一个空的对象。

- object()函数是所有类的基类,因此所有的Python内置类型都是object的子类。

- object()函数可以用于检查对象是否为Python内置类型。

3. 详细用法

示例代码:

# object()函数的使用示例

my_object = object()

obj = object()

print(obj)  # <object object at 0x7f2c5d6b0f10>

# 输出对象的类型

print(type(my_object))  # 输出:<class 'object'>

# 检查对象是否为Python内置类型

print(isinstance(my_object, int))  # 输出:False

print(isinstance(my_object, str))  # 输出:False

print(isinstance(my_object, object))  # 输出:True

object() 函数的使用场景比较少,一般用于作为基类来创建新的类。例如:

class MyObject(object):

    pass

obj = MyObject()

print(obj)  # <__main__.MyObject object at 0x7f2c5d6b0f10>

此处使用 object() 函数作为基类来创建了一个新的类 MyObject,并创建了一个 MyObject 类的实例 obj。

在上面的示例代码中,我们使用object()函数创建了一个空的对象,并使用type()函数输出了该对象的类型。需要注意的是,object()函数是所有类的基类,因此所有的Python内置类型都是object的子类。此外,我们还使用isinstance()函数检查了该对象是否为Python内置类型。

oct()

1. 作用

oct()函数用于将整数转换为八进制字符串。

2. 特性

- oct()函数接受一个整数作为参数,并返回该整数的八进制字符串表示。

- 八进制字符串以前缀"0o"开头,例如"0o12"表示十进制数10。

3. 详细用法

示例代码:

# oct()函数的使用示例

my_int = 10

# 将整数转换为八进制字符串

my_oct = oct(my_int)

# 输出八进制字符串

print(my_oct)  # 输出:0o12

# 将八进制字符串转换为整数

my_int2 = int(my_oct, 8)

# 输出转换后的整数

print(my_int2)  # 输出:10

在上面的示例代码中,我们使用oct()函数将整数10转换为八进制字符串"0o12",并使用int()函数将八进制字符串转换为整数。需要注意的是,八进制字符串以前缀"0o"开头。

open()

1. 作用

open()函数用于打开一个文件,并返回一个文件对象。可以使用文件对象进行读写操作。

2. 特性

- open()函数接受两个参数:文件名和打开模式。

- 打开模式包括:读取模式('r')、写入模式('w')、追加模式('a')、二进制模式('b')和文本模式('t')。

- 默认情况下,open()函数使用文本模式和读取模式打开文件。

- open()函数返回一个文件对象,可以使用该对象进行读写操作。

- 使用完文件对象后,应该调用close()方法关闭文件。

3. 详细用法

示例代码:

from inner_module_def_datastruct import WEIXIN_URL,CSDN_URL
# open()函数的使用示例
# 打开文件并写入内容
with open('test.txt', 'w') as f:
    f.write(WEIXIN_URL)

# 打开文件并读取内容
with open('test.txt', 'r') as f:
    content = f.read()
    print(content)

# 打开文件并追加内容
with open('test.txt', 'a') as f:
    f.write(CSDN_URL)

# 打开二进制文件并读取内容
with open('test.bin', 'rb') as f:
    content = f.read()
print(content)

在上面的示例代码中,我们使用open()函数打开了一个文本文件和一个二进制文件,并使用不同的打开模式进行读写操作。需要注意的是,使用完文件对象后,应该调用close()方法关闭文件。

open和file的区别

在 Python 中,open() 和 file() 都可以用来打开文件,但是它们之间有一些区别。open在py2py3中都是内置函数,file在py3中不是内置函数,如下验证情况

- open() 是 Python 2.6 版本之后引入的新函数,用于打开文件并返回文件对象。

- file() 是 Python 2.x 版本中的旧函数,用于打开文件并返回文件对象。

在 Python 3.x 版本中,file() 函数已经被移除,只能使用 open() 函数来打开文件。

另外,open() 函数有一个 mode 参数,用于指定文件的打开模式,可以是读模式('r')、写模式('w')、追加模式('a')等。而 file() 函数没有 mode 参数,只能使用默认的读模式。

例如:

# 使用 open() 函数打开文件

with open('file.txt', 'w') as f:

    f.write('Hello, world!')

# 使用 file() 函数打开文件

f = file('file.txt')

print(f.read())  # Hello, world!

f.close()

在上面的示例中,我们使用 open() 函数和 file() 函数分别打开了一个名为 file.txt 的文件,并写入了一些内容。

SteveRocket的博客_CSDN博客-Django进阶,Python进阶,网络&信息安全领域博主SteveRocket擅长Django进阶,Python进阶,网络&信息安全,等方面的知识https://blog.csdn.net/zhouruifu2015/


更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。

关于公众号的描述访问如下链接



关于Articulate“做一个知识和技术的搬运工。做一个终身学习的爱好者。做一个有深度和广度的技术圈。”一直以来都想把专业领域的技https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SteveRocket

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

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

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

打赏作者

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

抵扣说明:

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

余额充值