क्या अन्य सूची में उनके पत्राचार को तोड़ने के बिना दो संबंधित सूचियों को यादृच्छिक रूप से घुमाने के बेहतर तरीके हैं? मुझे numpy.array
और c#
में संबंधित प्रश्न मिल गए हैं लेकिन बिल्कुल वही नहीं।दो संबंधित सूचियों को घुमाने के लिए बेहतर तरीका
एक पहली कोशिश के रूप में, एक सरल zip
चाल करना होगा:
import random
a = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
b = [2, 4, 6, 8, 10]
c = zip(a, b)
random.shuffle(c)
a = [e[0] for e in c]
b = [e[1] for e in c]
print a
print b
यह उत्पादन प्राप्त होगा:
[[1, 2], [7, 8], [3, 4], [5, 6], [9, 10]]
[2, 8, 4, 6, 10]
बस यह थोड़ा अजीब लगता है। और इसे एक अतिरिक्त सूची भी चाहिए।
आप सूचियों अनज़िप करने के साथ-साथ 'zip' उपयोग कर सकते हैं:' ए, बी = जिप (* ग) ' – mgilson
मैं भी आम तौर पर एक कार्यक्रम की सिफारिश नहीं होगा डिजाइन जहां आपको समांतर सूचियों का एक सेट रखने की आवश्यकता है। बस 1 सूची रखें। अपने डेटा को एकीकृत करने के लिए किसी प्रकार का वर्ग या कुछ बनाएं। – mgilson
यदि कोई 'numpy' द्वारा ऐसा काम करना चाहता है, तो यहां एक अच्छा समाधान है: http: //stackoverflow.com/questions/4601373/better-way-to-shuffle-two-numpy-arrays-in-unison – Mithril