Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 인덱스를 기반으로 하는 다중 목록으로 목록 요소 추가

<시간/>

목록은 중첩될 수 있습니다. 이는 더 큰 목록 내부의 요소로 더 작은 목록이 있음을 의미합니다. 이 기사에서는 단순 목록의 요소를 중첩 목록의 요소에 추가하는 문제를 해결합니다. 목록의 길이가 다르면 더 작은 목록의 길이가 결과 목록의 최대 길이가 됩니다.

다음은 이를 수행하는 다양한 방법입니다.

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]]