gpt4 book ai didi

python - 编织 N 个等长的可迭代参数

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:28 26 4
gpt4 key购买 nike

在下面的代码片段中,我有一段代码目前正在按我希望的方式运行:

def weave_iterable(*iters):
return ''.join('{}'.format('{}'*len(chars)).format(*chars) for chars in zip(*iters))

>>> string1 = 'aeim'
>>> string2 = 'bfjn'
>>> string3 = 'cgko'
>>> string4 = 'dhlp'
>>> string5 = '----'
>>> iterable_args = (string1, string2, string3, string4, string5)
>>> weave_iterable(*iterable_args)
'abcd-efgh-ijkl-mnop-'

但是,我想知道是否有一种更有效和/或更 Pythonic 的方式来格式化我的 weave_iterable 函数返回的文本?具体来说,我想知道是否有任何方法可以避免使用 .format() 两次,因为传入此函数的参数数量未知。我在 Python 2.7 中开发,但很高兴在 Python 3.x 中得到答案

最佳答案

您可以使用 zip对可迭代对象的相应元素进行分组,itertool.chain将生成的分组 iterables 扁平化。然后你可以直接将结果传递给 join 方法:

>>> from itertools import chain
>>> l = ['aeim', 'bfjn', 'cgko','dhlp','----']
>>> "".join(chain(*zip(*l)))
>>> 'abcd-efgh-ijkl-mnop-'

你的函数将变成

>>> def weave_iterable(*iters):
return "".join(chain(*zip(*iters)))

关于python - 编织 N 个等长的可迭代参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com