在 Python 中,交错两个列表意味着创建一个新列表来交替两个列表中的元素。要实现此目的,请考虑以下场景:
如果两个列表具有相同数量的元素,一个简单的解决方案是使用切片:
list1 = ['f', 'o', 'o'] list2 = ['hello', 'world'] result = [None] * (len(list1) + len(list2)) result[::2] = list1 result[1::2] = list2 print(result)
这将产生所需的输出:
['f', 'hello', 'o', 'world', 'o']
当输入列表的长度不同时,需要额外的逻辑:
将较长列表中的多余元素保留在末尾,使用这种方法:
def interlace(list1, list2): result = [] i, j = 0, 0 # indices for list1 and list2 while i < len(list1) and j < len(list2): result.append(list1[i]) result.append(list2[j]) i += 1 j += 1 # Add remaining elements from the longer list result.extend(list1[i:] if len(list1) > len(list2) else list2[j:]) return result
分散多余的元素元素均匀地分布在交错列表中,使用此方法:
def interlace_evenly(list1, list2): shorter_list = list1 if len(list1) < len(list2) else list2 longer_list = list1 if len(list1) > len(list2) else list2 result = [] # Intersperse elements of the shorter list for i in range(len(shorter_list)): result.append(shorter_list[i]) result.append(longer_list[i % len(longer_list)]) # Add remaining elements from the longer list result.extend(longer_list[len(shorter_list):]) return result
以上是如何在 Python 中有效地交错两个可能不同长度的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!