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 중국어 웹사이트의 기타 관련 기사를 참조하세요!