输出多个定义的函数C语言,从函数返回多个输出(示例代码)

这篇博客探讨了如何在C语言中创建一个函数,该函数能输出多个值,特别是通过迭代生成器的方式。作者分享了使用`itertools.permutations`生成数字列表的示例,讨论了`return`和`yield`的区别,并提供了不同解决方案,包括返回列表和使用生成器。最终的代码示例展示了如何在不中断函数执行的情况下逐个输出排列组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我不确定这是可能的,但......

我正在尝试编写一个函数,它将输出数字列表,以便它们可以输入到另一个函数中。我虽然处于死胡同,因为return或yield(在这种情况下使用)都不能给我我想要的东西。

def ITERATOR():

for number in range(1,3):

for item in itertools.permutations(range(15),number):

yield item

显然,只要使用return,函数就会中断,而yield会立即返回所有内容。理想情况下我想要输出的是每行打印的内容:

def ITERATOR():

for number in range(2,4):

for item in itertools.permutations(range(15),number):

print(item)

即:

(0, 1)

(0, 2)

(0, 3)

(0, 4)

(0, 5)

(0, 6)

(0, 7)

(0, 8)

(0, 9)

(0, 10)

(0, 11)

(0, 12)

(0, 13)

(0, 14)

etc...

有没有办法实现这个目标?

答案

如果要返回列表,可以这样做:

def fct():

return [item for item in itertools.permutations(range(15),number) for number in range(2,4)]

对于发电机

def fct():

return (item for item in itertools.permutations(range(15),number) for number in range(2,4))

另一答案

new_tuples = []

for i in range(0, 5):

for j in range(1, 16):

new_tuples.append((i, j))

for i in new_tuples:

print(i)

产量

(xenial)vash@localhost:~/python$ python3 text_seg.py

(0, 1)

(0, 2)

(0, 3)

(0, 4)

(0, 5)

(0, 6)

(0, 7)

(0, 8)

(0, 9)

(0, 10)

(0, 11)

(0, 12)

(0, 13)

(0, 14)

(0, 15)

(1, 1)

评论

这种方法会满足您的需求吗?您可以根据需要交换数字,但是,这将允许您与list商店有一个tuples,并能够将它们称为print。

另一答案

您可以通过函数的参数返回列表,并使用函数的返回来指示已建立的排列数:

import itertools

permut = []

def ITERATOR(item):

n_permuts= 0

for number in range(2,4):

for item in itertools.permutations(range(15),number):

permut.append(item)

n_permuts+= 1

return n_permuts

print (ITERATOR(permut))

for item in permut:

print(item)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值