2012-07-23 4 views
6

संभव डुप्लिकेट:
Python: How to find list intersection?दो सूचियों से मिलान आइटम कैसे खोजें?

मैं एक .txt में डेटा की दो सूचियां है

data1 = "name1", "name2", "name3", "name4" etc. 

data2 = "name3", "name6", "name10" etc. 

मैं पता लगाने के लिए जो नाम दोनों सूची कैसे में प्रकट होता है चाहता हूँ क्या मैं करूँगा

उत्तर

24

उपयोग sets:

set(data1) & set(data2) 

& ऑपरेटर "मुझे इन दो सेट के चौराहे देना" का मतलब है, वैकल्पिक रूप से आप .intersection विधि का उपयोग कर सकते हैं:

set(data1).intersection(data2) 
+1

सही, यह मेरे लिए पूरी तरह से काम करता है। धन्यवाद! – ivanhoifung

+1

मुझे लगता है कि .intersection अधिक व्यक्तिगत रूप से पठनीय है, लेकिन जैसा कि आप कहते हैं कि वे वही काम करते हैं। – TimothyAWiseman

+1

@ivanhoifung यदि यह आपकी समस्या का समाधान करता है तो आपको [चेकमार्क पर क्लिक करके इस जवाब को स्वीकार करना चाहिए] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) उत्तर के बगल में। यह दोनों पक्षों को कुछ बिंदुओं के साथ पुरस्कृत करेगा, और हल की गई इस समस्या को चिह्नित करेगा। – Levon

-2
For a in data1: 
    for b in data2: 
     if a==b: 
     print(a) 

एक तरह से यह करने के लिए है कि, नहीं सबसे अच्छा तरीका है, हालांकि

4
nf = [x for x in data1 if x in data2] 
nf 

दोनों सूचियों में आम आइटम वापसी होगी

0
>>> [ name for name in data1 if name in data2 ] 
['name3']