2024-10-06 16:27:35 发布
网友
假设我有两个列表:
["aa", "bb", "cc"], ["dd", "ee", "ffg"]
我必须得到这样的输出:
["aadd", "bbee", "ccffg"]
我想到了拉链,但我觉得它比这先进一点,所以我真的不知道该怎么办。你知道吗
所以本质上你有两个列表,你需要在相同索引位置的两个元素之间执行相同的操作(连接)。你知道吗
map函数可以从列表中获取元素并执行所需的函数
list_a = ["aa", "bb", "cc"] list_b = ["dd", "ee", "ffg"] result = map(lambda x,y: x + y, list_a, list_b)
只是把这个map版本扔进去。列表理解更像是python,但这里有一个替代方法。你知道吗
map
>>> list1 = ["aa", "bb", "cc"] >>> list2 = ["dd", "ee", "ffg"] >>> map("".join, zip(list1, list2)) ['aadd', 'bbee', 'ccffg']
你甚至可以用这个来创建一个生成器。你知道吗
>>> from itertools import izip, imap >>> final = imap("".join, izip(list1, list2)) >>> next(final) 'aadd' >>> next(final) 'bbee'
下面是三种不同解决方案的一些计时结果。(发电机一号打败了所有人)
>>> timeit('[a+b for a, b in zip(list1, list2)]', 'list1 = ["aa", "bb", "cc"]*100; list2 = ["dd", "ee", "ffg"]*100', number=10000) 0.4470004917966719 >>> timeit('map("".join, zip(list1, list2))', 'list1 = ["aa", "bb", "cc"]*100; list2 = ["dd", "ee", "ffg"]*100', number=10000) 0.43502864982517053 >>> timeit('imap("".join, izip(list1, list2))', 'from itertools import imap, izip; list1 = ["aa", "bb", "cc"]*100; list2 = ["dd", "ee", "ffg"]*100', number=10000) 0.011020268755800089 >>> timeit('[a+b for a, b in izip(list1, list2)]', 'from itertools import izip; list1 = ["aa", "bb", "cc"]*100; list2 = ["dd", "ee", "ffg"]*100', number=10000) 0.32172862839627214 >>> timeit('map(lambda x,y: x + y, list1, list2)', 'list1 = ["aa", "bb", "cc"]*100; list2 = ["dd", "ee", "ffg"]*100', number=10000) 0.5423113458890612
它比zip()稍微复杂一点,但仅仅是。只需在压缩后将项目对添加到一起:
zip()
>>> [a+b for a, b in zip(list1, list2)] ['aadd', 'bbee', 'ccffg']
其中list1和list2是您的列表。你知道吗
list1
list2
这是因为zip()返回一个由一系列元组组成的对象,这些元组包含两个iterable中相应的元素。因此,为了连接这些项目,我们每次只需将它们添加到一起,创建一个新列表。你知道吗
所以本质上你有两个列表,你需要在相同索引位置的两个元素之间执行相同的操作(连接)。你知道吗
map函数可以从列表中获取元素并执行所需的函数
只是把这个
map
版本扔进去。列表理解更像是python,但这里有一个替代方法。你知道吗你甚至可以用这个来创建一个生成器。你知道吗
下面是三种不同解决方案的一些计时结果。(发电机一号打败了所有人)
它比
zip()
稍微复杂一点,但仅仅是。只需在压缩后将项目对添加到一起:其中
list1
和list2
是您的列表。你知道吗这是因为
zip()
返回一个由一系列元组组成的对象,这些元组包含两个iterable中相应的元素。因此,为了连接这些项目,我们每次只需将它们添加到一起,创建一个新列表。你知道吗相关问题 更多 >
编程相关推荐