python实用技巧——获取部分返回值的4种方式

喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!

python的函数支持返回多个值。返回多个值时,默认以tuple的方式返回。

例如,下面两个函数的定义是完全等价的。

1 def f():
2     return 1,2
3
4 def f():
5     return (1,2)

如果将函数调用的返回值赋值给对应个数的变量,它会一一对应的赋值,这很容易理解。下面是等价的:

1 a, b = f()     # a=1, b=2
2 (a, b) = f()

如果赋值给一个变量,将会把整个元组赋值给变量。下面是等价的,a表示整个元组(1,2):

1 a = f()
2 (a) = f()

丢弃返回值

很多时候,多个返回值并非全都是所需的,这时候需要丢弃某些返回值。python有几种方式只获取部分返回值:

1.直接放在空上下文,不进行任何赋值,将丢弃所有返回值

1 # f()的返回值全丢弃
2 f()

2.因为返回值是元组,所以可以通过索引取得某个或某几个返回值

1 a = f()[0]
2 b = f()[1]

3.使用下划线_

1 # 丢弃第二个返回值
2 a, _ = f()

4.使用双下划线__或更多下划线___________

1 # 丢弃第二个返回值
2 a, __ = f()

我是一名python开发工程师,整理了一套python的学习资料,从基础的python脚本到web开发、爬虫、
数据分析、数据可视化、机器学习、面试真题等。想要的可以进群:688244617免费领取

其中第三种方式"使用下划线"不是很安全,因为下划线_在python中有多种意义。而且正好有两种意义在某些情况下可能会产生冲突。所以,建议使用第四种方式。

觉得文章还可以的话不妨点个赞,有任何意见或者看法欢迎大家评论!

 

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 的多进程可以实现并行处理,并且可以获取进程的返回值。可以使用 `multiprocessing` 模块中的 `Process` 类来创建进程,并使用 `Queue` 或 `Pipe` 来在进程之间传递数据。以下是一个简单的示例代码: ```python import multiprocessing def worker(num): """进程执行的函数""" result = num * 2 return result if __name__ == '__main__': # 创建进程 p = multiprocessing.Process(target=worker, args=(10,)) # 启动进程 p.start() # 等待进程结束 p.join() # 获取进程返回值 result = p.exitcode print(result) ``` 在上面的示例代码中,我们创建了一个进程执行 `worker` 函数,并且将参数 `10` 传递给该函数。在进程结束后,我们使用 `exitcode` 属性获取进程的返回值。如果进程正常结束,返回值为 0,否则返回的是进程结束时的状态码。 如果要在多个进程之间传递数据,可以使用 `Queue` 或 `Pipe`。以下是一个示例代码: ```python import multiprocessing def worker(q, num): """进程执行的函数""" result = num * 2 q.put(result) if __name__ == '__main__': # 创建进程之间共享的队列 q = multiprocessing.Queue() # 创建多个进程 processes = [multiprocessing.Process(target=worker, args=(q, i)) for i in range(5)] # 启动进程 for p in processes: p.start() # 等待进程结束 for p in processes: p.join() # 获取进程返回值 results = [] while not q.empty(): result = q.get() results.append(result) print(results) ``` 在上面的示例代码中,我们创建了一个进程之间共享的队列 `q`,创建了多个进程,并将队列 `q` 作为参数传递给这些进程。在进程中,我们使用 `put` 方法将结果存入队列中。在主进程中,我们使用 `get` 方法从队列中取出结果,并将其存储在列表 `results` 中,最终打印出列表中的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值