python – 扩展列表中的元素

python – 扩展列表中的元素,第1张

概述我正在寻找一种“好”的方式来处理一个列表,其中一些元素需要扩展为更多的元素(只有一次,结果没有扩展). 标准的迭代方式是: i=0while i < len(l): if needs_expanding(l[i]): new_is = expand(l[i]) l[i:i] = new_is i += len(new_is) else: 我正在寻找一种“好”的方式来处理一个列表,其中一些元素需要扩展为更多的元素(只有一次,结果没有扩展).

标准的迭代方式是:

i=0while i < len(l):   if needs_expanding(l[i]):      new_is = expand(l[i])      l[i:i] = new_is      i += len(new_is)   else:      i += 1

这很难看.我可以使用以下内容将内容重写为新列表:

nl = []for x in l:   if needs_expanding(x):      nl += expand(x)   else:      nl.append(x)

但他们似乎都太长了.或者我可以简单地做2次通过并稍后压平列表:

flatten(expand(x) if needs_expanding(x) else x for x in l)# ordef try_expanding(x)....flatten(try_expanding(x) for x in l)

但这也不是“正确”.

有没有其他明确的方法来做到这一点?

解决方法 如果您不需要在生成的列表中进行随机访问,则还可以使用write a generator.

def iter_new_List(old_List):        for x in old_List:       if needs_expanding(x):           for y in expand(x):               yIEld y       else:           yIEld xnew_List = List(iter_new_List(old_List))

这在功能上等同于您的第二个示例,但在您的实际情况中它可能更具可读性.

此外,Python编码标准禁止使用小写-L作为变量名,因为它几乎与数字1无法区分.

总结

以上是内存溢出为你收集整理的python – 扩展列表中的元素全部内容,希望文章能够帮你解决python – 扩展列表中的元素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/langs/1192341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存