Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 하위 리스트에 새로운 값 추가하는 방법

때때로 이미 존재하는 리스트에 새로운 값을 추가해야 하는 경우가 있습니다. 이 글에서는 기존 리스트의 각 항목(하위 리스트)과 결합하여 새로운 값 하나 또는 여러 개의 값을 삽입하는 다양한 방법을 살펴보겠습니다.

For 루프 사용하기

리스트 내부의 항목들이 모두 같은 길이를 가지고 있다면, 리스트 컴프리헨션(List Comprehension)을 활용해 각 항목에 손쉽게 새로운 값을 추가할 수 있습니다. 아래 예제에서는 숫자와 문자열이 섞여 있는 중첩 리스트에 새 문자열 값을 추가하는 과정을 보여줍니다.

예제

List = [[10, 20], [14, 8],['Mon','Tue']]
print("Given List: \n" + str(List))
s = "Rise"
t = "fast"
result = [[m, n, s,t ] for m, n in List]
#result
print("\nNew List: \n" + str(result))

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

출력

Given List:
[[10, 20], [14, 8], ['Mon', 'Tue']]
New List:
[[10, 20, 'Rise', 'fast'], [14, 8, 'Rise', 'fast'], ['Mon', 'Tue', 'Rise', 'fast']]

리스트 컴프리헨션에서 for m, n in List를 통해 각 하위 리스트의 요소를 언패킹한 뒤, 변수 st의 값을 함께 묶어 새로운 리스트를 생성합니다. 이 방식은 하위 리스트의 길이가 모두 동일할 때 특히 유용합니다.

+ 연산자 사용하기

+ 연산자를 리스트와 함께 사용하면 각 하위 리스트 끝에 새로운 요소를 간단히 추가할 수 있습니다. 이 방법의 장점은 하위 리스트 자체를 하나의 새로운 요소로 추가할 수도 있다는 점입니다. 또한 기존 하위 리스트들의 길이가 서로 달라도 문제없이 동작합니다.

예제

List = [[1.5, 2.5, 'Tue'], [0.8, 0.9, 'Ocean'], [6.8, 4.3], [9]]
print("Given List: \n" + str(List))
# Choose a list to be added.
s = ["Rise","Fast"]
result = [sub + [s] for sub in List]
print("\nNew List: \n" + str(result))

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

출력

Given List:
[[1.5, 2.5, 'Tue'], [0.8, 0.9, 'Ocean'], [6.8, 4.3], [9]]
New List:
[[1.5, 2.5, 'Tue', ['Rise', 'Fast']], [0.8, 0.9, 'Ocean', ['Rise', 'Fast']], [6.8, 4.3, ['Rise', 'Fast']], [9, ['Rise', 'Fast']]]

예제에서 볼 수 있듯이 [sub + [s] for sub in List] 구문은 원본 리스트를 변경하지 않으면서 각 하위 리스트에 새 리스트 s를 하나의 요소로 추가한 새로운 리스트를 반환합니다. 원본 데이터를 그대로 유지하고 싶다면 append()extend() 메서드 대신 이처럼 새 리스트를 생성하는 방식이 안전합니다.