title: Shuffle two list at once with same order
body: <p>I'm using the <code>nltk</code> library's <code>movie_reviews</code> corpus which contains a large number of documents. My task is get  predictive performance of these reviews with pre-processing of the data and without pre-processing. But there is problem, in lists <code>documents</code> and <code>documents2</code> I have the same documents and I need shuffle them in order to keep same order in both lists. I cannot shuffle them separately because each time I shuffle the list, I get other results. That is why I need to shuffle the at once with same order because I need compare them in the end (it depends on order). I'm using python 2.7</p>
  
  <p>Example (in real are strings tokenized, but it is not relative):</p>
  
  <pre><code>documents = [(['plot : two teen couples go to a church party , '], 'neg'),
               (['drink and then drive . '], 'pos'),
               (['they get into an accident . '], 'neg'),
               (['one of the guys dies'], 'neg')]
  
  documents2 = [(['plot two teen couples church party'], 'neg'),
                (['drink then drive . '], 'pos'),
                (['they get accident . '], 'neg'),
                (['one guys dies'], 'neg')]
  </code></pre>
  
  <p>And I need get this result after shuffle both lists:</p>
  
  <pre><code>documents = [(['one of the guys dies'], 'neg'),
               (['they get into an accident . '], 'neg'),
               (['drink and then drive . '], 'pos'),
               (['plot : two teen couples go to a church party , '], 'neg')]
  
  documents2 = [(['one guys dies'], 'neg'),
                (['they get accident . '], 'neg'),
                (['drink then drive . '], 'pos'),
                (['plot two teen couples church party'], 'neg')]
  </code></pre>
  
  <p>I have this code:</p>
  
  <pre><code>def cleanDoc(doc):
      stopset = set(stopwords.words('english'))
      stemmer = nltk.PorterStemmer()
      clean = [token.lower() for token in doc if token.lower() not in stopset and len(token) &gt; 2]
      final = [stemmer.stem(word) for word in clean]
      return final
  
  documents = [(list(movie_reviews.words(fileid)), category)
               for category in movie_reviews.categories()
               for fileid in movie_reviews.fileids(category)]
  
  documents2 = [(list(cleanDoc(movie_reviews.words(fileid))), category)
               for category in movie_reviews.categories()
               for fileid in movie_reviews.fileids(category)]
  
  random.shuffle( and here shuffle documents and documents2 with same order) # or somehow
  </code></pre>