Python เทียบเท่ากับการระเบิดของ PHP หรือไม่


103

มีการเทียบเท่ากับการระเบิดของ PHP ใน Python หรือไม่? ฉันได้อ่านและแยกชุดของคำที่ใช้ตัวคั่นและตอนนี้ฉันต้องการจัดเรียงคำเหล่านี้ในลำดับแบบสุ่มและพิมพ์คำโดยเว้นวรรค

ระเบิด - เข้าร่วมองค์ประกอบอาร์เรย์ด้วยสตริง

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

คำตอบ:


186

ใช้สตริงเข้าร่วมวิธี

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

คุณสามารถเข้าร่วมซ้ำได้ (ไม่ใช่เฉพาะที่listใช้ที่นี่) และแน่นอนคุณสามารถใช้สตริงใดก็ได้ (ไม่เพียงเท่านั้น' ') เป็นตัวคั่น

ถ้าคุณต้องการการสุ่มเช่นคุณกล่าวว่าในการใช้คำถามของคุณสับเปลี่ยน


join () ใช้งานได้ดีถ้าคุณมีอาร์เรย์ของสตริง แต่ถ้าสมาชิกของอาร์เรย์ใด ๆ เป็น int แทนที่จะเป็นสตริงคุณจะได้รับ TypeError การระเบิดของ php จะไม่ทำเช่นนั้นแม้ในโหมดที่เข้มงวด = / <?php declare(strict_types=1);var_dump(implode("glue",["startString",(int)123,"endString"]));ให้คุณstring(31) "startStringglue123glueendString"แต่ในการทำ python "glue".join(["startString",123,"endString"]);ให้คุณTypeError: sequence item 1: expected str instance, int found
hanshenrik

14

โอเคฉันเพิ่งค้นพบฟังก์ชันที่ทำในสิ่งที่ฉันอยากทำ

ฉันอ่านไฟล์ที่มีคำในรูปแบบเช่น: Jack/Jill/my/kill/name/bucket

จากนั้นฉันแยกมันโดยใช้split()วิธีการและเมื่อฉันมีคำลงในรายการฉันก็ต่อคำด้วยวิธีนี้:

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

3
ฉันไม่เข้าใจว่าทำไมคุณถึงอยากเข้าร่วม ก่อนอื่นคุณมีบรรทัดคุณแยกออกเป็นอักขระแล้วเข้าร่วมอีกครั้ง ทำไมคุณไม่แทนที่ตัวละครตั้งแต่แรก? (คุณพลาดส่วน 'สุ่ม' ในคำตอบของคุณเองไม่เกี่ยวข้องอีกต่อไป?)
RvdK
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.