在python中访问列表或字符串的非连续元素

在python中访问列表或字符串的非连续元素,第1张

在python中访问列表或字符串的非连续元素

像这样吗

def select(lst, *indices):    return (lst[i] for i in indices)

用法:

>>> def select(lst, *indices):...     return (lst[i] for i in indices)...>>> L = range(0,101,10)>>> a, b = select(L, 2, 5)>>> a, b(20, 50)

函数的工作方式是返回一个生成器对象,该对象可以类似于任何种类的Python序列进行迭代。

正如@justhalf在注释中指出的那样,可以通过定义函数参数的方式来更改您的调用语法。

def select(lst, indices):    return (lst[i] for i in indices)

然后可以使用以下命令调用该函数:

select(L, [2, 5])

或您选择的任何列表。

更新: 我现在建议使用

operator.itemgetter
代替,除非您确实需要生成器的惰性评估功能。请参阅John
Y的答案



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5632294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存