Shall, Sydney via Tutor wrote: > What I want is the following. > > I have: > > property_a = [1, 6, 2, 4] > > property_b = [62, 73, 31 102] > > Result should approximately be: > > property_b = [31, 102, 62, 73] > > That is both lists change in value in exactly the same order. > > Now, this is easy to achieve. I could simply sort both lists is > ascending order and I would then have an exact alignment of values is > ascending order. The correlation would be a perfect linear relationship, > I suppose. > > But my actual scientific problem requires that the correlation should be > only approximate and I do not know how close to to a perfect correlation > it should be. So, I need to introduce some lack of good correlation when > I set up the correlation. How to do that is my problem. > > I hope this helps to clarify what my problem is.
Maybe you could sort the already-sorted property_b again, with some random offset: >>> import itertools >>> def wiggled(items, sigma): ... counter = itertools.count() ... def key(item): return random.gauss(next(counter), sigma) ... return sorted(items, key=key) ... >>> wiggled(range(20), 3) [0, 5, 2, 4, 1, 6, 7, 8, 3, 9, 11, 10, 13, 14, 16, 12, 18, 17, 19, 15] >>> wiggled([31, 102, 62, 73], .8) [102, 31, 62, 73] >>> wiggled([31, 102, 62, 73], .8) [31, 102, 62, 73] >>> wiggled([31, 102, 62, 73], .8) [31, 102, 62, 73] >>> wiggled([31, 102, 62, 73], .8) [31, 62, 102, 73] _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor