gpt4 book ai didi

python - 将两个列表连接成格式化字符串的最聪明的方法

转载 作者:太空狗 更新时间:2023-10-29 19:30:19 26 4
gpt4 key购买 nike

假设我有两个相同长度的列表:

a = ['a1', 'a2', 'a3']
b = ['b1', 'b2', 'b3']

我想生成以下字符串:

c = 'a1=b1, a2=b2, a3=b3'

实现此目标的最佳方法是什么?

我有以下实现:

import timeit

a = [str(f) for f in range(500)]
b = [str(f) for f in range(500)]

def func1():
return ', '.join([aa+'='+bb for aa in a for bb in b if a.index(aa) == b.index(bb)])

def func2():
list = []
for i in range(len(a)):
list.append('%s=%s' % (a[i], b[i]))
return ', '.join(list)

t = timeit.Timer(setup='from __main__ import func1', stmt='func1()')
print 'func1 = ' + t.timeit(10)

t = timeit.Timer(setup='from __main__ import func2', stmt='func2()')
print 'func2 = ' + t.timeit(10)

输出是:

func1 = 32.4704790115
func2 = 0.00529003143311

你有一些权衡吗?

最佳答案

在我的系统上,这个实现比你的两个函数中的任何一个都快,而且更紧凑。

c = ', '.join('%s=%s' % t for t in zip(a, b))

感谢@JBernardo 提出的改进建议。

在最近的语法中,str.format 更合适:

c = ', '.join('{}={}'.format(*t) for t in zip(a, b))

虽然它可以接受任何具有 __str__ 方法的对象,但它会产生大致相同的输出,因此两个整数列表仍然可以在这里工作。

关于python - 将两个列表连接成格式化字符串的最聪明的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7277072/

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