मेरे पास संख्याओं की एक सूची होगी, प्रत्येक अपनी लाइन पर (0 -100 कहें)। मैं उन नंबरों को कैसे ढूंढूं जो सूचीबद्ध नहीं हैं या गायब हैं?मैं उन नंबरों को कैसे ढूंढूं जो सूचीबद्ध या अनुपलब्ध नहीं हैं?
उत्तर
उन्हें सभी को एक सेट में जोड़ें। फिर 1-100 से भरे सेट से घटाएं। यहाँ 0-9 के लिए एक उदाहरण है:
>>> set(range(10)) - set([1, 4, 5, 6, 8, 2])
set([0, 9, 3, 7])
>>>
मैं [1, 4, 5, 6, 8, 2]
सूचीबद्ध किया था। यह पता लगाने के लिए कि 0-9 रेंज में कौन सी संख्याएं गायब हैं, मैंने 0-9 के साथ एक सेट बनाया और फिर सेट को [1, 4, 5, 6, 8, 2]
से घटा दिया। और पता चला कि [0, 9, 3, 7]
गायब थे।
सेट इसके लिए काफी कुशल हैं। एक अतिरिक्त लाभ के रूप में, डुप्लीकेट को सुन्दर तरीके से संभाला जाएगा।
तो एल नंबर की सूची,
set(L).difference(xrange(101))
है तो xrange
In [1]: L=[1, 4, 5, 6, 8, 2]
In [2]: timeit set(range(101)) - set(L)
10000 loops, best of 3: 21.7 µs per loop
In [3]: timeit set(L).symmetric_difference(range(101))
100000 loops, best of 3: 14.2 µs per loop
In [4]: timeit set(L).difference(range(101))
100000 loops, best of 3: 9.73 µs per loop
आप 'अंतर' का भी उपयोग कर सकते हैं, 'symmetric_difference' अनिवार्य रूप से एक एक्सओआर –
@Eli, अच्छा बिंदु, अभी भी तेज है –
यहाँ एक साहचर्य का उपयोग कर एक awk
समाधान है से एक सेट बनाने की बचत होती है (की-वैल्यू) सरणी:
printf '%s\n' 1 4 5 6 8 2 |
awk -F " " -v first=0 -v last=9 '
BEGIN {
for(i=first; i<=last; i++)
array[i] = 0
}
{
for(i=1;i<=NF;i++)
array[$i] += 1
}
END {
for (num in array)
if (array[num] == 0) print num
}
'
- सबसे पहले, हम cre किसी दी गई श्रेणी के सभी नंबरों को डिफ़ॉल्ट मान 0.
- के साथ एकल कुंजी के रूप में उपयोग किया जाता है के साथ एक सरणी खाया हर इनपुट संख्या तो सरणी के लिए एक कुंजी के रूप awk द्वारा कार्रवाई की जाती है तो यह है कि मूल्य पर से 1.
- वृद्धि हो जाता है अंत में, केवल उन चाबियों को मुद्रित किया जाता है जो वृद्धि नहीं हुई हैं, यानी उनके पास 0 का मान है (क्योंकि वे संख्याओं की इनपुट रेंज में अनुपलब्ध थे)।
बैश:
# first set up an array containing the whole range
declare -a nums
for i in {0..100}; do
nums[$i]=1
done
# then read the file and remove the numbers from it
while read number; do
unset nums[$number]
done < file.with.numbers
# the remaining array keys are the numbers not found in the file
for number in "${!nums[@]}"; do
echo $number
done
- 1. मैं उन निर्माताओं को कैसे ढूंढूं जो एक प्रकार का बेचते हैं लेकिन दूसरे नहीं?
- 2. मैं उन फ़ाइलों को कैसे ढूंढूं जिनमें दिए गए स्ट्रिंग पैटर्न नहीं हैं?
- 3. मैं उन जोड़ों को कैसे ढूंढूं जो एक गुण (कॉलम) को एकाधिक tuples (पंक्तियों) के माध्यम से साझा करते हैं?
- 4. मैं उन विदेशी कुंजी के लिए कैसे पूछूं जो उनकी बाधाओं से मेल नहीं खाते हैं?
- 5. मैं केवल उन फ़ाइलों को सूचीबद्ध कैसे करूं जो प्रतिबद्ध होंगे?
- 6. क्या उन फ़ाइलों को छोड़ सकते हैं जो अस्तित्व में नहीं हैं, रेस-फ्री?
- 7. मैं उन वर्गों को कैसे लिख सकता हूं जो "वैश्विक" चर पर भरोसा नहीं करते हैं?
- 8. मैं अप्रयुक्त # अंतर्निहित निर्देशों को कैसे ढूंढूं?
- 9. मैं ViewByTag कैसे ढूंढूं?
- 10. उन भाषाओं की तलाश में जो ट्यूरिंग पूर्ण नहीं हैं
- 11. उन लोगों के लिए Emacspeak जो दृष्टिहीन नहीं हैं
- 12. मैं उन सूची तत्वों की गणना कैसे करूं जो छुपा नहीं हैं?
- 13. मैं उन सभी तत्वों को कैसे ढूंढूं जिनके पास jQuery का उपयोग करके शीर्षक विशेषता है?
- 14. मैं अपनी पर्ल स्क्रिप्ट की मॉड्यूल निर्भरताओं को कैसे ढूंढूं?
- 15. jQuery उन तत्वों को कैसे संभालता है जो किसी पृष्ठ पर मौजूद नहीं हैं?
- 16. मैं कैसे उन iPhone
- 17. यूनिटी उन प्रकारों को कैसे हल करती है जो पंजीकृत नहीं हैं?
- 18. मैं केवल उन क्षेत्रों को वापस कैसे करूं जो मोंगोइड में आवश्यक हैं?
- 19. उन उपयोगकर्ताओं को प्राप्त करें जो 'सदस्य' समूह हैं
- 20. मैं अपना पैकेज कैसे ढूंढूं?
- 21. py.test उन परीक्षणों को एकत्र नहीं करता है जो 'ऑब्जेक्ट' से विरासत में नहीं हैं
- 22. क्लेरटूल: उन फ़ाइलों को लेबल कैसे लागू करें जो केवल मेरे वर्तमान दृश्य में हैं?
- 23. मैं उन सभी पंक्तियों को कैसे हटा सकता हूं जो कुछ वर्णों से शुरू नहीं होते हैं?
- 24. MySQL में, मैं उन सभी लॉग को कैसे हटा/साफ़ कर सकता हूं जो आवश्यक नहीं हैं?
- 25. मैं ब्राउजर की प्रॉक्सी सेटिंग्स कैसे ढूंढूं?
- 26. मैं vim regex में गैर-प्रिंट करने योग्य वर्णों को कैसे बदलूं या ढूंढूं?
- 27. मैं उन वस्तुओं का नकल कैसे करूं जो मैं अपने परीक्षणों में तत्काल नहीं कर सकता?
- 28. मैं उन संस्थाओं को कैसे फ़िल्टर करूं जो एलएलबीएलजेन प्रो का उपयोग करके कई से अधिक रिश्तों में नहीं हैं?
- 29. प्रविष्टियों को कैसे ढूंढें जो स्ट्रिंगलिस्टप्रॉपर्टी खाली नहीं हैं?
- 30. हास्केल पारसेक उन सभी शब्दों को छोड़ दें जो पूर्वनिर्धारित नहीं हैं
आपको बार-बार क्या है संख्या? क्या वे क्रमबद्ध हैं? क्या यह होमवर्क है? :-) – juanchopanza
पायथन या बैश? – Chetan