该list.index(x)函数返回值为的第一项列表中的索引x。 是否有一个函数,list_func_index()类似于index()具有函数的函数f()作为参数。该函数在列表的f()每个元素上运行e,直到 f(e)返回True。然后list_func_index()返回的索引e。 按代码: >>> def list_func_index(lst, func): for i in range(len(lst)): if func(lst[i]): return i raise ValueError('no element making func True') >>> l = [8,10,4,5,7] >>> def is_odd(x): return x % 2 != 0 >>> list_func_index(l,is_odd) 3 有没有更优雅的解决方案?(以及该函数的更好的名称)
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我正在寻找一种检查Python函数变量的有效方法。例如,我想检查参数的类型和值。是否有用于此的模块?还是应该使用装饰器之类的东西或任何特定的习惯用法? def my_function(a, b, c): """An example function I'd like to check the arguments of.""" # check that a is an int # check that 0 < b < 10 # check that c is not an empty string
原谅初学者的问题,但说我有一个数组: a = [1,2,3] 还有某处的功能;假设这是一个实例函数: class Ilike def turtles(*args) puts args.inspect end end 我该如何调用Ilike.turtles,a就像在打电话一样(Ilike.new).turtles(1,2,3)。 我熟悉send,但这似乎并没有将数组转换为参数列表。 我正在寻找的apply与之类似的Javascript等效于call但将数组转换为参数列表。
我有一个自称的函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var != "a" and my_var != "b": print('You didn\'t type "a" or "b". Try again.') get_input() else: return my_var print('got input:', get_input()) 现在,如果我仅输入“ a”或“ b”,则一切正常: Type "a" or "b": a got input: a 但是,如果我输入其他内容,然后输入“ a”或“ b”,则会得到以下信息: Type "a" or …