title: Pandas MultiIndex slicing without sorting
body: <p>Given a DataFrame with multi-indexed columns</p>
  
  <pre><code>import pandas as pd
  fish = [("Fish", lli) for lli in ["One", "Two"]]
  dogs = [("Dog", lli) for lli in ["Three", "Four", "Five"]]
  cats = [("Cat", lli) for lli in ["Three", "Four", "Five"]]
  df = pd.DataFrame(index=["Blue", "Green", "Red"], columns=pd.MultiIndex.from_tuples(fish+dogs+cats))
  </code></pre>
  
  <p>-</p>
  
  <p>df =</p>
  
  <pre><code>          Fish       Dog              Cat          
            One  Two   Three Four Five  Three Four Five
     Blue   NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN
     Green  NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN
     Red    NaN  NaN   NaN   NaN  NaN   NaN   NaN  NaN
  </code></pre>
  
  <p>Now I would like to set the values of two columns at the same time, e.g.</p>
  
  <pre><code>df.loc[:, ('Dog', ['Four', 'Five'])] = 3.1
  </code></pre>
  
  <p>This leads to a KeyError saying</p>
  
  <pre><code>KeyError: 'MultiIndex Slicing requires the index to be fully lexsorted tuple len (2), lexsort depth (0)'
  </code></pre>
  
  <p>The problem can be "solved" by sorting the columns before setting the values using</p>
  
  <pre><code>df = df.sort_index(axis=1)
  </code></pre>
  
  <p>Now the issue is that I don't want to sort the columns as they are already sorted in a way that reflects the desired output.
  Is there any way to set the values of multiple columns without sorting first?</p>