Median calculation

Dear all,

Trying calculate the median of a list, I tried many workflows but I did not succeed. I know there are external plugins for this, but I am very curious, if and how one can define the following condition in GH to calculate the median:

If the length of the list is odd, give the item in centre
else, give the average of the two centred items

I would appreciate your ideas.

Median (9.6 KB)


Here is a way using a Stream Filter as a kind of switch depending on if the list is odd or even.

Median (11.3 KB)

1 Like

Thank you very much @Dani_Abalde and @Michael_Pryor for the brilliant solutions.
What I specifically learned from you was the trick to connect 2 indexes to List Item in a way that it can result in one or two items, and the use of Stream Filter, which I was not aware of.


And in case it would be of interest for somebody else in the forum, I updated @Michael solution based on my needs. That is:

  1. I added sorting in the beginning,
  2. Replaced Average with Mass Addition and Division, as panels cannot connect to Average directly,
  3. Simplified the odd/even detection.

Farhang (12.2 KB)

It will be much simpler to use script component to calculate.


Hi, I am new to Python in Grasshopper but I am trying to replicate what you did. Could you explain a bit more how you set type hint etc, I put the exact same script but python shows syntax error.


Right-click on the Python component’s inputs (one at a time) and choose ‘Type hint’.

P.S. You might also need ‘List Access’?