PHP के प्रत्यारोपण के लिए पायथन बराबर है?


103

क्या पायथन में PHP के निहितार्थ के बराबर है? मैंने सीमांकित शब्दों के एक सेट में पढ़ा और विभाजित किया है, और अब मैं उन्हें यादृच्छिक क्रम में सॉर्ट करना चाहता हूं और बीच में रिक्त स्थान के साथ शब्दों को प्रिंट करना चाहता हूं।

implode - एक स्ट्रिंग के साथ सरणी तत्वों को मिलाएं

http://php.net/manual/en/function.implode.php

जवाबों:


185

स्ट्रिंग्स जॉइन-मेथड का उपयोग करें

print ' '.join(['word1', 'word2', 'word3'])

आप किसी भी चलने योग्य (न केवल शामिल हो सकते हैं) list यहां इस्तेमाल किया और निश्चित रूप से आप किसी भी स्ट्रिंग (न केवल ' ') को सीमांकक के रूप में उपयोग कर सकते हैं ।

यदि आप एक यादृच्छिक क्रम चाहते हैं जैसे आपने अपने प्रश्न में कहा था कि फेरबदल का उपयोग करें ।


अगर आपके पास स्ट्रिंग्स की एक सरणी है, तो जॉइन () बढ़िया काम करता है, लेकिन अगर स्ट्रिंग के बजाय एरे का कोई भी सदस्य int है, तो आपको टाइप टाइप मिलेगा, php का निहितार्थ ऐसा नहीं करता है, यहां तक ​​कि सख्त मोड में भी = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));आपको देता है string(31) "startStringglue123glueendString"लेकिन अजगर करने "glue".join(["startString",123,"endString"]);में आपको देता हैTypeError: sequence item 1: expected str instance, int found
पिछलग्गू

14

ठीक है, मुझे सिर्फ एक फ़ंक्शन मिला है जो वही करता है जो मैं करना चाहता था;

मैं एक प्रारूप में शब्दों के साथ एक फ़ाइल में पढ़ता हूं जैसे: Jack/Jill/my/kill/name/bucket

मैंने तब इसे split()विधि का उपयोग करके विभाजित किया और एक बार जब मेरे पास एक सूची में शब्द था, तो मैंने इस पद्धति के साथ शब्दों को संक्षिप्त कर दिया:

concatenatedString = ' - '.join(myWordList)
# ie: delimeter.join(list)

3
मुझे नहीं मिला कि आप क्यों शामिल होना चाहते हैं। पहले आपके पास एक पंक्ति है, आप इसे पात्रों में विभाजित करते हैं और फिर इसे फिर से जोड़ते हैं। आप वर्णों को पहले स्थान पर क्यों नहीं रखते हैं? (आप अपने स्वयं के उत्तर में 'यादृच्छिक' भाग को याद करते हैं, जो अब प्रासंगिक नहीं है?)
आरवीडीके
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.