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

Python의 사용자 정의 길이 행렬

<시간/>

때때로 파이썬을 사용하여 행렬을 만들 때 결과 행렬에서 주어진 요소가 반복되는 횟수를 제어해야 할 수도 있습니다. 이 기사에서는 요소가 목록으로 제공될 때 필요한 수의 요소로 행렬을 만드는 방법을 볼 것입니다.

zip 사용

행렬에 사용할 요소가 포함된 목록을 선언합니다. 그런 다음 행렬에서 요소의 발생 횟수를 저장할 또 다른 목록을 선언합니다. zip 함수를 사용하여 요소를 구성하는 for 루프를 포함하는 결과 행렬을 만들 수 있습니다.

예시

listA = ['m', 'n', 'p','q']

# Count of elements
elem_count = [1,0,3,2]

# Given Lists
print("Given List of elements: " ,listA)
print("Count of elements : ",elem_count)

# Creating Matrix
res = [[x] * y for x, y in zip(listA, elem_count)]

# Result
print("The new matrix is : " ,res)

출력

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

Given List of elements: ['m', 'n', 'p', 'q']
Count of elements : [1, 0, 3, 2]
The new matrix is : [['m'], [], ['p', 'p', 'p'], ['q', 'q']]

지도 및 mul

이 접근법에서 우리는 위의 zip 메소드 대신 operator 모듈의 mul 메소드를 사용합니다. 또한 map 함수는 mul 메소드를 목록의 모든 요소에 적용하므로 for 루프가 필요하지 않습니다.

예시

from operator import mul

listA = ['m', 'n', 'p','q']

# Count of elements
elem_count = [1,0,3,2]

# Given Lists
print("Given List of elements: " ,listA)
print("Count of elements : ",elem_count)

# Creating Matrix
res = list(map(mul, listA, elem_count))

# Result
print("The new matrix is : " ,res)

출력

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

Given List of elements: ['m', 'n', 'p', 'q']
Count of elements : [1, 0, 3, 2]
The new matrix is : ['m', '', 'ppp', 'qq']