python如何返回一个列表_如何在python中只返回列表中的一个不同元素

我将一步一步地解释这个问题,并且根据要求,我将尽量避免首先定义函数或列出理解,并尝试解释如何从for到列出理解或定义函数。在

我们从列表nums开始,定义两个空列表。在其中一个中,我们将把偶数的位置存储在nums中,而在另一个中,我们将存储奇数的位置:#nums = [2, 4, 6, 8, 7]

nums = [1, 3, 4, 5]

odds = []

evens = []

for i,num in enumerate (nums):

if num % 2 == 1:

odds.append(i)

elif num % 2 == 0:

evens.append(i)

我们将打印长度为1的列表:

^{pr2}$

有一个elif而不是else来检查是否只有一个数字与其他数字不同,但是它可以被else代替。在

现在来简化代码并使代码更具python风格。在

使用列表理解,可以在同一行中编写赔率和平均数列表。因此,for循环可以简化为2行:odds = [i for i,num in enumerate(nums) if num % 2 == 1]

evens = [i for i,num in enumerate(nums) if num % 2 == 0]

然后,如果您要检查多个列表,那么将所有命令打包到一个函数中会很有趣。这样,只需调用您定义的函数,所有命令都将立即执行。在

函数是用def命令定义的,后跟function_name(input1,input2...):,最后,可以选择放置一行包含return output1,output2...。在这种情况下,只有一个输入、数字列表和一个输出,即奇数/偶数一出的索引,因此:def oddeven_one_out(num_list):

odds = [i for i,num in enumerate(nums) if num % 2 == 1]

evens = [i for i,num in enumerate(nums) if num % 2 == 0]

if len(odds)==1:

result = odds[0]

elif len(evens)==1:

result = evens[0]

return result

现在,可以为每个列表调用函数:nums1 = [1, 3, 4, 5]

print oddeven_one_out(nums1)

nums2 = [2, 4, 6, 8, 7]

print oddeven_one_out(nums2)

不过,定义的函数有一个小问题,那就是如果用户出错并输入一个所有数字都是偶数的列表,变量result将不会被定义,return将引发错误。在

这很容易解决,并且有助于理解return命令。当函数遇到return时,它将离开,而不执行下面的代码。使用此行为,我们可以重新定义函数:def oddeven_one_out(num_list):

odds = [i for i,num in enumerate(nums) if num % 2 == 1]

if len(odds)==1:

return odds[0]

evens = [i for i,num in enumerate(nums) if num % 2 == 0]

if len(evens)==1:

return evens[0]

现在,函数检查是否只有一个奇数,如果是奇数,则返回其位置,否则检查不同的奇数是否为偶数,如果是,则返回其位置。另外,如果用户调用oddeven_one_out([1,3,5,7]),结果将是None,因为函数不返回任何值。在

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值