टीएल; डीआर:
समाधान (1)
import numpy as np
main_list = np.setdiff1d(list_2,list_1)
# yields the elements in `list_2` that are NOT in `list_1`
समाधान (2) आप क्रमबद्ध सूची चाहते हैं
def setdiff_sorted(array1,array2,assume_unique=False):
ans = np.setdiff1d(array1,array2,assume_unique).tolist()
if assume_unique:
return sorted(ans)
return ans
main_list = setdiff_sorted(list_2,list_1)
EXPLANATIONS:
(1) आप NumPy's , setdiff1d( , = ) का उपयोग कर सकते हैं ।array1array2assume_uniqueFalse
assume_uniqueउपयोगकर्ता पूछता है कि क्या सरणियाँ पहले से ही हैं।
यदि False, तो पहले अद्वितीय तत्व निर्धारित किए जाते हैं।
यदि True, फ़ंक्शन मान लेगा कि तत्व पहले से ही अद्वितीय हैं और फ़ंक्शन अद्वितीय तत्वों को निर्धारित करना छोड़ देगा।
यह उन अद्वितीय मूल्यों को जन्म देता है array1जो इसमें नहीं हैं array2। assume_uniqueहै Falseडिफ़ॉल्ट रूप से।
यदि आप अनूठे तत्वों ( चिन्नी84 की प्रतिक्रिया के आधार पर ) से चिंतित हैं , तो बस उपयोग करें (जहां assume_unique=False=> डिफ़ॉल्ट मान):
import numpy as np
list_1 = ["a", "b", "c", "d", "e"]
list_2 = ["a", "f", "c", "m"]
main_list = np.setdiff1d(list_2,list_1)
# yields the elements in `list_2` that are NOT in `list_1`
(२)
उन लोगों के लिए जो उत्तर क्रमबद्ध करना चाहते हैं, मैंने एक कस्टम फंक्शन बनाया है:
import numpy as np
def setdiff_sorted(array1,array2,assume_unique=False):
ans = np.setdiff1d(array1,array2,assume_unique).tolist()
if assume_unique:
return sorted(ans)
return ans
उत्तर पाने के लिए, दौड़ें:
main_list = setdiff_sorted(list_2,list_1)
साइड नोट:
(ए) समाधान 2 (कस्टम फ़ंक्शन setdiff_sorted) एक सूची देता है ( समाधान 1 में एक सरणी की तुलना में)।
(बी) यदि आप सुनिश्चित नहीं हैं कि तत्व अद्वितीय हैं, तो बस setdiff1dसमाधान ए और बी दोनों में NumPy's की डिफ़ॉल्ट सेटिंग का उपयोग करें । एक जटिलता का एक उदाहरण क्या हो सकता है? नोट देखें (c)
(c) यदि दोनों सूचियाँ अद्वितीय नहीं हैं तो चीजें अलग होंगी ।
कहना list_2अद्वितीय नहीं है list2 = ["a", "f", "c", "m", "m"]:। इस प्रकार रखें list1: पैदावार list_1 = ["a", "b", "c", "d", "e"]
के डिफ़ॉल्ट मूल्य को निर्धारित करना (दोनों समाधानों में)। यदि आप सेट करते हैं , तो दोनों समाधान देते हैं । क्यों? ऐसा इसलिए है क्योंकि उपयोगकर्ता ने माना है कि तत्व अद्वितीय हैं)। इसलिए, यह KEEP के लिए बेहतर हैassume_unique["f", "m"]assume_unique=True["f", "m", "m"]assume_uniqueइसके डिफ़ॉल्ट मूल्य के लिए। ध्यान दें कि दोनों उत्तर हल किए गए हैं।
अजगरnumpy
list_2जो कहीं दिखाई देते हैंlist_1या ऐसे तत्वlist_2जो उसी सूचकांक में मौजूद नहीं हैंlist_1?