सवाल है, स्पष्ट नहीं है वास्तव में, और शायद आप @ Ajax1234 के answer साथ अच्छा कर रहे हैं, लेकिन यहाँ एक और उस पर "ले" है।
यदि आप पदों की तुलना करना चाहते हैं (थोड़ी-थोड़ी बुद्धिमान एक्सओआर क्या करेगी) तो आप सबसे छोटी सूची प्राप्त करने की तरह कुछ कर सकते हैं, सबसे लंबी सूची के साथ स्थिति द्वारा पुनरावृत्ति जांच स्थिति (सबसे लंबी सूची मैचों में एक ही स्थिति की जांच करें सबसे छोटी सूची में शब्द) और फिर शेष सूची जोड़ें ("अनदेखा" सबसे लंबी सूची का हिस्सा)। निम्नलिखित की तरह कुछ:
a = ['hello', 'world']
b = ['hello', 'world', 'im', 'steve']
min_list = a if len(a) < len(b) else b
max_list = b if len(b) > len(a) else a
results = []
for i, item in enumerate(min_list):
# Iterate through the shortest list to avoid IndexError(s)
if min_list[i] != max_list[i]:
results.append(min_list[i])
results.append(max_list[i])
results.extend(max_list[i + 1:])
print(results)
# Prints: ['im', 'steve']
हालांकि, यदि आपको एक ही स्थिति मेल नहीं खाती है तो आपको क्या करना है, इसकी समस्या है। मेरा मतलब है ... उस मामले में क्या करना है?उपरोक्त कोड में, मैं सिर्फ results
सूची में दोनों प्रविष्टियाँ कहा, निम्नलिखित जानकारी के लिए, जिसका अर्थ है:
a = ['hello', 'foo']
b = ['hello', 'world', 'im', 'steve']
उत्पादन होगा:
>>> ['foo', 'world', 'im', 'steve']
(नोटिस सूची a
से दोनों foo
और world
सूची से b
जोड़ दिया गया है)
तो आदेश * है * महत्वपूर्ण है, तुम क्या करते हो जब 'A' है, जैसे,' [ 'हैलो', '', 'दुनिया'] 'या' [ 'दुनिया', 'हैलो' ] '? क्या होगा यदि यह '[' दुनिया ',' हैलो ',' दुनिया '] 'है? क्या होगा यदि इसमें कहीं 'स्टीव' है, तो क्या इससे कोई फर्क पड़ता है? – torek
संभावित डुप्लिकेट [दो सूचियों की तुलना और केवल अंतर को मुद्रित करना? (दो सूचियों को XORING)] (https://stackoverflow.com/questions/16312730/comparing-two-lists-and-only-printing-the-differences-xoring-two-lists) – Copperfield