배열의 각 요소에 대해 다른 계산 수행

Sdawes

배열이 있습니다. 각 요소에 대해 다른 계산을 수행해야합니다. 나는 다음과 같은 것을 할 수 있다고 생각했습니다.

def calc(a, b, c)
    arr = [a, b, c]
    arr.map { |i| (i[0] * 600), (i[1] * 800), (i[2] * 1000) }
end

calc(5, 8, 15)

그러나 이것은 작동하지 않습니다. 단일 배열의 각 요소에 대해 다른 계산을 수행하려면 어떻게해야합니까?

키스 베넷

다음은 도움이 될 수있는 몇 가지 다른 구현입니다. 승수를 배열에 넣으면 zip입력 배열의 요소를 적절한 승수 값과 연결하는 데 사용할 수 있습니다 . 또한 곱셈을 수행하는 논리 ( multiply_arrays및에서 transform_arrays) 에서 승수 값을 제거하여 논리를 더 쉽게 추상화 할 수 있습니다.

#!/usr/bin/env ruby

VALUES = [1, 1, 1]
MULTIPLIERS = [600, 800, 1000]

def transform(*values)
  values.zip(MULTIPLIERS).map { |x, y| x * y }
end

def multiply_arrays(array1, array2)
  array1.zip(array2).map { |n1, n2| n1 * n2 }
end

def transform_arrays(array1, array2, method_name)
  array1.zip(array2).map { |n1, n2| n1.public_send(method_name, n2) }
end


p transform(*VALUES)                           # [600, 800, 1000]
p multiply_arrays(VALUES, MULTIPLIERS)         # [600, 800, 1000]
p transform_arrays(VALUES, MULTIPLIERS, :*)    # [600, 800, 1000]

계산이 상당히 달라야하는 경우 (다른 연산자, 값, 더 복잡한 논리) 람다 배열 사용을 고려합니다.

def transform_with_lambdas(values, transforms)
  values.zip(transforms).map do |value, transform|
    transform.(value)
  end
end

TRANSFORMS = [
  ->(x) { x *  600   },
  ->(x) { x +  100   },
  ->(x) { x /    3.0 },
]

p transform_with_lambdas(VALUES, TRANSFORMS)  # [600, 101, 0.3333333333333333]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각 행에 대해 다른 수의 열

분류에서Dev

SQL Server 2012의 각 행에 대해 0보다 큰 열 수 계산

분류에서Dev

SQL Server 2012의 각 행에 대해 0보다 큰 열 수 계산

분류에서Dev

배열의 각 항목에 대해 계산 된 jQuery Knockout 실행

분류에서Dev

R 다른 열에 표시된대로 각 행에 대해 행 평균, 다른 열을 계산합니다.

분류에서Dev

배열의 모든 요소에 대해 해당 요소보다 큰 오른쪽 요소의 수를 어떻게 계산할 수 있습니까?

분류에서Dev

pyspark는 다른 행에 대해 각 행에 대해 계산을 수행하고 최대

분류에서Dev

배열의 각 요소에 대한 함수 결과 합산

분류에서Dev

Python에서 한 열의 각 행에 대한 한자 수를 계산합니다.

분류에서Dev

groupby 후 각 그룹에 대해 다소 복잡한 계산 수행

분류에서Dev

각 요소에 대한 변수를 생성하지 않고 다른 요소로 배열의 요소를 조작

분류에서Dev

객체의 각 배열에 대한 평균 점수 계산

분류에서Dev

벡터의 각 항목에 대해 벡터의 값에 걸쳐있는 행 수를 계산합니다.

분류에서Dev

다른 텐서에 대한 텐서의 각 요소에 대한 최소 거리 계산

분류에서Dev

foreach의 각 요소에 대해 계산 된 KnockoutJS 호출

분류에서Dev

문자열에서 각 요소의 발생 횟수를 계산합니다.

분류에서Dev

VBA : 다른 배열의 각 열에 대해 계산 된 평균을 보여주는 새 배열을 만드는 방법은 무엇입니까?

분류에서Dev

2D 목록의 각 행에있는 요소 수 계산

분류에서Dev

행렬의 각 행에 대한 벡터 발생 횟수 계산

분류에서Dev

AVX2 벡터의 각 요소에 대해 선행 0 비트를 계산하고 _mm256_lzcnt_epi32를 에뮬레이트합니다.

분류에서Dev

함수에서 배열 요소의 절대 값 계산

분류에서Dev

R의 각 열에 대해 음수, 0 및 양수 값의 숫자와 백분율을 계산합니다.

분류에서Dev

확장 코드 : 다차원 PHP 배열 그룹화 및 각 배열 요소에 대한 특정 키의 합계 계산

분류에서Dev

두 번째 요소 (벡터화 구현)에서 시작하는 모든 요소에 대해 행 벡터의 각 요소 (이전 및 다음 요소)의 평균을 계산합니다.

분류에서Dev

데이터 프레임에서 단일 열의 각 행에 대해 계산 수행

분류에서Dev

배열의 각 요소에 대해 오른쪽에 가장 큰 요소를 출력합니다.

분류에서Dev

다른 배열의 각 요소에 대해 배열에서 가장 가까운 값을 찾는 벡터화

분류에서Dev

다른 열의 모든 요소에 대해 더 큰 요소의 수를 효율적으로 계산하는 방법은 무엇입니까?

분류에서Dev

각 목록에 대해 일치하는 클래스가있는 총 요소 수를 계산합니다.

Related 관련 기사

  1. 1

    각 행에 대해 다른 수의 열

  2. 2

    SQL Server 2012의 각 행에 대해 0보다 큰 열 수 계산

  3. 3

    SQL Server 2012의 각 행에 대해 0보다 큰 열 수 계산

  4. 4

    배열의 각 항목에 대해 계산 된 jQuery Knockout 실행

  5. 5

    R 다른 열에 표시된대로 각 행에 대해 행 평균, 다른 열을 계산합니다.

  6. 6

    배열의 모든 요소에 대해 해당 요소보다 큰 오른쪽 요소의 수를 어떻게 계산할 수 있습니까?

  7. 7

    pyspark는 다른 행에 대해 각 행에 대해 계산을 수행하고 최대

  8. 8

    배열의 각 요소에 대한 함수 결과 합산

  9. 9

    Python에서 한 열의 각 행에 대한 한자 수를 계산합니다.

  10. 10

    groupby 후 각 그룹에 대해 다소 복잡한 계산 수행

  11. 11

    각 요소에 대한 변수를 생성하지 않고 다른 요소로 배열의 요소를 조작

  12. 12

    객체의 각 배열에 대한 평균 점수 계산

  13. 13

    벡터의 각 항목에 대해 벡터의 값에 걸쳐있는 행 수를 계산합니다.

  14. 14

    다른 텐서에 대한 텐서의 각 요소에 대한 최소 거리 계산

  15. 15

    foreach의 각 요소에 대해 계산 된 KnockoutJS 호출

  16. 16

    문자열에서 각 요소의 발생 횟수를 계산합니다.

  17. 17

    VBA : 다른 배열의 각 열에 대해 계산 된 평균을 보여주는 새 배열을 만드는 방법은 무엇입니까?

  18. 18

    2D 목록의 각 행에있는 요소 수 계산

  19. 19

    행렬의 각 행에 대한 벡터 발생 횟수 계산

  20. 20

    AVX2 벡터의 각 요소에 대해 선행 0 비트를 계산하고 _mm256_lzcnt_epi32를 에뮬레이트합니다.

  21. 21

    함수에서 배열 요소의 절대 값 계산

  22. 22

    R의 각 열에 대해 음수, 0 및 양수 값의 숫자와 백분율을 계산합니다.

  23. 23

    확장 코드 : 다차원 PHP 배열 그룹화 및 각 배열 요소에 대한 특정 키의 합계 계산

  24. 24

    두 번째 요소 (벡터화 구현)에서 시작하는 모든 요소에 대해 행 벡터의 각 요소 (이전 및 다음 요소)의 평균을 계산합니다.

  25. 25

    데이터 프레임에서 단일 열의 각 행에 대해 계산 수행

  26. 26

    배열의 각 요소에 대해 오른쪽에 가장 큰 요소를 출력합니다.

  27. 27

    다른 배열의 각 요소에 대해 배열에서 가장 가까운 값을 찾는 벡터화

  28. 28

    다른 열의 모든 요소에 대해 더 큰 요소의 수를 효율적으로 계산하는 방법은 무엇입니까?

  29. 29

    각 목록에 대해 일치하는 클래스가있는 총 요소 수를 계산합니다.

뜨겁다태그

보관