<s>[INST] This problem has been bugging me for a while. I was wondering if someone could help me with it.
I have a list of tuples of size 3 where the first element is a float, the second element is a string, and the third element is another string. I want to sort the list of tuples based on the first element (float) but I also want to sort by the length of the second string in descending order when the floats are equal.

Here is what I tried:
```
my_list = [(19.0, "apple", "juice"), (10.0, "water", "fruit"), (10.0, "apple", "fruit"), (10.0, "orange", "fruit"), (2.0, "orange", "juice")]
sorted_list = sorted(my_list, key=lambda x: (x[0], x[1]))
```
I am close, but the problem is that I am only sorting the second tuple element lexicographically, rather than by length. Any ideas on how I could modify the lambda function to do this?[/INST]