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

Python의 목록에서 요소 반복

<시간/>

목록의 값을 반복해야 하는 시나리오가 있습니다. 이 값의 중복은 다음과 같은 방법으로 파이썬에서 달성할 수 있습니다.

중첩 for 루프 사용

각 요소를 선택하고 내부 for 루프를 통해 복제를 생성한 다음 두 요소를 모두 외부 for 루프에 전달하는 간단한 접근 방식입니다.

예시

# Given list
listA = ['Mon', 'Tue', 9, 3, 3]

print("Given list : ",listA)

# Adding another element for each element
Newlist = [i for i in listA for n in (0, 1)]

# Result
print("New list after duplication: ",Newlist)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]

itertools 사용

itertools 모듈은 iterable에서 데이터 조작을 처리합니다. 여기에서 chain.from_iterables를 적용합니다.

예시

import itertools

# Given list
listA = ['Mon', 'Tue', 9, 3, 3]

print("Given list : ",listA)

# Adding another element for each element
Newlist = list(itertools.chain.from_iterable([n, n] for n in listA))

# Result
print("New list after duplication: ",Newlist)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]

감소 포함

reduce 함수는 두 번째 인수로 전달된 모든 목록 요소에 인수로 전달된 특정 함수를 적용합니다. 목록에 있는 각 요소의 중복 요소를 추가하는 add 함수와 함께 사용합니다.

예시

from functools import reduce
from operator import add

# Given list
listA = ['Mon', 'Tue', 9, 3, 3]

print("Given list : ",listA)

# Adding another element for each element
Newlist = list(reduce(add, [(i, i) for i in listA]))

# Result
print("New list after duplication: ",Newlist)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Given list : ['Mon', 'Tue', 9, 3, 3]
New list after duplication: ['Mon', 'Mon', 'Tue', 'Tue', 9, 9, 3, 3, 3, 3]