목록은 중첩될 수 있습니다. 이는 더 큰 목록 내부의 요소로 더 작은 목록이 있음을 의미합니다. 이 기사에서는 단순 목록의 요소를 중첩 목록의 요소에 추가하는 문제를 해결합니다. 목록의 길이가 다르면 더 작은 목록의 길이가 결과 목록의 최대 길이가 됩니다.
다음은 이를 수행하는 다양한 방법입니다.
for 루프 사용
이 방법에서 우리는 더 작은 목록의 길이를 취하고 이 목록의 요소를 반복하여 더 큰 목록의 요소에 추가합니다. 여기서 우리는 각 요소를 결과 목록에 추가하기 위해 추가 기능을 사용합니다.
예
simple_list = [25, 35, 45, 55, 65] nested_list = [[5,10], [10], [5,15], [25], [5,10,15],[5,6]] result_list = [] for n in range(len(simple_list)): var = [] for m in nested_list[n]: var.append(m + simple_list[n]) result_list.append(var) print("The first list :", simple_list) print("The nested list :", nested_list) print("Result :",result_list)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The first list : [25, 35, 45, 55, 65] The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15], [5, 6]] Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]
enumerate() 사용
enumerate() 함수는 목록이나 튜플과 같은 컬렉션을 가져와 열거형 객체로 반환합니다. 이 접근 방식에서는 먼저 enumerate 함수가 있는 외부 for 루프를 만들어 중첩 목록의 각 요소를 가져온 다음 내부 for 루프를 통해 단순 목록의 각 요소에 추가합니다.
예
simple_list = [25, 35, 45, 55, 65,25] nested_list = [[5,10], [10], [5,15], [25], [5,10,15]] result_list = [] # using enumerate result_list = [[val + simple_list[p] for val in q] for p, q in enumerate(nested_list)] print("The first list :", simple_list) print("The nested list :", nested_list) print("Result :",result_list)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The first list : [25, 35, 45, 55, 65, 25] The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]] Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]
zip() 사용
이 접근 방식에서는 위의 프로그램을 반복하지만 열거 대신 zip()을 사용합니다. zip()은 두 목록을 모두 입력으로 사용합니다.
예
simple_list = [25, 35, 45, 55, 65,25] nested_list = [[5,10], [10], [5,15], [25], [5,10,15]] result_list = [] result_list = [[w + u for w in v ]for u, v in zip(simple_list, nested_list)] print("The first list :", simple_list) print("The nested list :", nested_list) print("Result :",result_list)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The first list : [25, 35, 45, 55, 65, 25] The nested list : [[5, 10], [10], [5, 15], [25], [5, 10, 15]] Result : [[30, 35], [45], [50, 60], [80], [70, 75, 80]]