You can't get both the minimun and maximum in one line, but you can get them with a simple loop:
min_value, max_value = float('inf'), float('-inf')
for j in roads.junctions():
value = len(j.links)
if value < min_value:
min_value = value
if value > max_value:
max_value = value
This produces the values with the same complexity as min() and max(): O(N), so linear complexity. It also looks at each value in isolation, not requiring all values to be in a single list in memory.
You can always wrap that into a function of course:
def min_and_max(iterable):
min_value, max_value = float('inf'), float('-inf')
for value in iterable:
if value < min_value:
min_value = value
if value > max_value:
max_value = value
return min_value, max_value
min_value, max_value = min_and_max(len(j.links) for j in roads.junctions())