Fixed (most) uses of cmp functions for sorting

This commit is contained in:
Grant Sanderson 2018-08-12 12:57:38 -07:00
parent 7f3b1e624d
commit b04bddf35b
10 changed files with 29 additions and 23 deletions

View file

@ -71,10 +71,9 @@ class IntroducePokerHand(PiCreatureScene, SampleSpaceScene):
card.set_height(community_cards.get_height())
selected_community_cards = VGroup(*[card for card in community_cards if card.numerical_value >= 10])
card_cmp = lambda c1, c2 : cmp(
c1.numerical_value, c2.numerical_value
selected_community_cards.submobjects.sort(
key=lambda c: c.numerical_value
)
selected_community_cards.submobjects.sort(card_cmp)
selected_community_cards.save_state()
for card in selected_community_cards:
@ -84,7 +83,9 @@ class IntroducePokerHand(PiCreatureScene, SampleSpaceScene):
you.hand.target,
[c.target for c in selected_community_cards]
))
straight_cards.submobjects.sort(card_cmp)
straight_cards.submobjects.sort(
key=lambda c: c.numerical_value
)
straight_cards.arrange_submobjects(RIGHT, buff = SMALL_BUFF)
straight_cards.next_to(community_cards, UP, aligned_edge = LEFT)
you.hand.target.shift(MED_SMALL_BUFF*UP)

View file

@ -829,10 +829,7 @@ class Mobject(Container):
def sort_submobjects(self, point_to_num_func=lambda p: p[0]):
self.submobjects.sort(
lambda *mobs: cmp(*[
point_to_num_func(mob.get_center())
for mob in mobs
])
key=lambda m: point_to_num_func(mob.get_center())
)
return self

View file

@ -2655,7 +2655,7 @@ class SearchSpacePerimeterVsArea(EquationSolver2d):
alt_path_parts = path_parts.copy()
size = lambda m : m.get_height() + m.get_width()
alt_path_parts.submobjects.sort(
lambda m1, m2 : -cmp(size(m1), size(m2))
key=lambda m1: -size(m1)
)
full_rect = SurroundingRectangle(

View file

@ -2011,7 +2011,7 @@ class VennDiagramProofByContradiction(Scene):
else:
rejected.append((x, y))
rejected.sort(
lambda (x1, y1), (x2, y2) : (x2**2 + y2**2) - (x1**2 + y1**2)
kay=lambda (x, y): (x**2 + y**2)
)
for i in range(len(photons) - len(pairs)):
pairs.append(rejected.pop())

View file

@ -21,7 +21,9 @@ class Jewel(VMobject):
self.set_height(self.height)
self.rotate(-np.pi/2-np.pi/24, RIGHT)
self.rotate(-np.pi/12, UP)
self.submobjects.sort(lambda m1, m2 : cmp(-m1.get_center()[2], -m2.get_center()[2]))
self.submobjects.sort(
key=lambda m: -m1.get_center()[2]
)
return self
class Necklace(VMobject):
@ -210,7 +212,11 @@ class IntroduceStolenNecklaceProblem(ThreeDScene):
self.shuffle_jewels(jewels)
self.play(FadeOut(self.title))
for jewel_type, label in zip(jewel_types, enumeration_labels):
jewel_type.submobjects.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
jewel_type.submobjects.sort(
key=
y=lambda m: m1.get
)
)
jewel_type.save_state()
jewel_type.generate_target()
jewel_type.target.arrange_submobjects()
@ -1298,7 +1304,9 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
enumeration_labels.to_edge(UP)
for jewel_type, label in zip(jewel_types, enumeration_labels):
jewel_type.submobjects.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
jewel_type.submobjects.sort(
key=key=lambda mettr()[0]
jewel_type.save_state()
jewel_type.generate_target()
jewel_type.target.arrange_submobjects()
@ -1352,7 +1360,7 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
self.add(chain, jewels)
jewels.submobjects.sort(
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
key=lambda m: m.get_center()[0]
)
remaining_indices = list(range(len(jewels)))
remaining_indices.remove(example_index)
@ -1362,7 +1370,7 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
self.remove(chain)
segments = VGroup(example_segment[0], *remaining_segments)
segments.submobjects.sort(
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
key=lambda m: m.get_center()[0]
)
segment_types = VGroup(*[
VGroup(*[m for m in segments if m.get_color() == Color(color)])

View file

@ -2365,7 +2365,7 @@ class IntroduceCurl(IntroduceVectorField):
**self.vector_field_config
)
vector_field.submobjects.sort(
lambda v1, v2: cmp(v1.get_length(), v2.get_length())
key=lambda v: v.get_length()
)
self.play(LaggedStart(GrowArrow, vector_field))
@ -2459,8 +2459,8 @@ class ShearCurl(IntroduceCurl):
vector_field = self.vector_field = VectorField(
self.func, **self.vector_field_config
)
vector_field.submobjects.sort(
lambda a1, a2: cmp(a1.get_length(), a2.get_length())
vector_field.submobjects.key=sort(
key=lambda a: a.get_length()
)
self.play(LaggedStart(GrowArrow, vector_field))
@ -2951,7 +2951,7 @@ class IllustrateGaussMagnetic(IllustrateGaussLaw):
self.func, **self.vector_field_config
)
vector_field.submobjects.sort(
lambda a1, a2: -cmp(a1.get_length(), a2.get_length())
key=lambda a: -a1.get_length()
)
self.play(LaggedStart(GrowArrow, vector_field))
self.add_foreground_mobjects(

View file

@ -1544,7 +1544,7 @@ class PowerRuleAlgebra(Scene):
xs_copy.generate_target()
target_list = [dx_copy.target] + list(xs_copy.target)
target_list.sort(
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
key=lambda m: m.get_center()[0]
)
dots = TexMobject("+", ".", ".", "\\dots")
for dot_index, dot in enumerate(dots):

View file

@ -649,7 +649,7 @@ class VectorsToDotsScene(VectorScene):
run_time = 3
)
)
vectors.sort(lambda v1, v2 : int(np.sign(v2.get_length() - v1.get_length())))
vectors.sort(key=lambda v: v.get_length())
self.add(*vectors)
def v_to_dot(vector):
return Dot(vector.get_end(), fill_color = vector.get_stroke_color())

View file

@ -1616,7 +1616,7 @@ class HowToTranslateAMatrix(Scene):
array.top_brace = Brace(VGroup(array, her_vector), UP)
for array in cob_matrix, inv_cob:
submobs = array.split()
submobs.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
submobs.sort(key=lambda m: m.get_center()[0])
array.submobjects = submobs
her_vector.set_color(MAROON_B)
cob_matrix.set_color_by_gradient(BLUE, MAROON_B)

View file

@ -689,7 +689,7 @@ class IntroduceElectricField(PiCreatureScene):
])
shading_list = list(result)
shading_list.sort(
lambda m1, m2 : cmp(m1.get_length(), m2.get_length())
key=lambda m: m1.get_length()
)
VGroup(*shading_list).set_color_by_gradient(*self.vector_field_colors)
result.set_fill(opacity = 0.75)