ฉันจะแปลงรายการเป็นสตริงที่มีช่องว่างใน Python ได้อย่างไร


93

ฉันจะแปลงรายการเป็นสตริงที่คั่นด้วยช่องว่างใน Python ได้อย่างไร

ตัวอย่างเช่นฉันต้องการแปลงรายการนี้:

my_list = [how,are,you]

เข้าไปในสตริง "how are you"

ช่องว่างมีความสำคัญ ฉันไม่ต้องการได้รับhowareyouอย่างที่ฉันพยายามใช้จนถึงตอนนี้

"".join(my_list)

18
Protip: อย่าใช้listเป็นชื่อตัวแปร
Tim Pietzcker

คำตอบ:


196
" ".join(my_list)

คุณต้องเข้าร่วมโดยเว้นวรรคไม่ใช่สตริงว่าง ...


7
โค้ดแบบนี้ทำไมถึงชอบ Python ง่ายมาก
Josh

จะเป็นอย่างไรถ้าเรามีสตริงในรูปแบบนี้list = ['how ', 'are ', 'you '] แล้วจะแปลงเป็นรายการได้อย่างไร
Muhammad Taqi

1
@MuhammadTaqi จากนั้นก็ถอดองค์ประกอบ be4 เข้าร่วม ..." ".join([i.strip() for i in my_list)
JACK ZHANG

17

ฉันจะโยนสิ่งนี้เป็นทางเลือกให้กับมันแม้ว่ามันจะไร้ประโยชน์มากเมื่อเทียบกับ" ".join(my_list)สตริง สำหรับที่ไม่ใช่สตริง (เช่นอาร์เรย์ของ ints) สิ่งนี้อาจดีกว่า:

" ".join(str(item) for item in my_list)


2

ดังนั้นเพื่อให้ได้ผลลัพธ์ที่ต้องการก่อนอื่นเราควรทราบว่าฟังก์ชันทำงานอย่างไร

ไวยากรณ์สำหรับjoin()วิธีการตามที่อธิบายไว้ในเอกสาร python มีดังนี้:

string_name.join(iterable)

สิ่งที่ควรสังเกต:

  • จะส่งคืนการstringเชื่อมต่อกับองค์ประกอบของiterable. ตัวคั่นระหว่างองค์ประกอบที่เป็นstring_name.
  • ค่าที่ไม่ใช่สตริงใด ๆ ในiterableจะเพิ่มค่าTypeError

ตอนนี้ในการเพิ่มช่องว่างสีขาวเราเพียงแค่ต้องแทนที่string_nameด้วย a " "หรือ' 'ทั้งสองอย่างก็จะได้ผลและวางสิ่งiterableที่เราต้องการเชื่อมต่อกัน

ดังนั้นฟังก์ชันของเราจะมีลักษณะดังนี้:

' '.join(my_list)

แต่ถ้าเราต้องการเพิ่มจำนวนเฉพาะwhite spacesระหว่างองค์ประกอบของเราในiterable?

เราจำเป็นต้องเพิ่มสิ่งนี้:

str(number*" ").join(iterable)

ที่นี่numberจะเป็นการป้อนข้อมูลของผู้ใช้

number=4ดังนั้นสำหรับตัวอย่างเช่นถ้า

จากนั้นผลลัพธ์ของstr(4*" ").join(my_list)will be how are youดังนั้นในทุก ๆ คำจะมีช่องว่างสีขาว 4 ช่อง



-9

ทำไมคุณไม่เพิ่มช่องว่างในรายการของตัวเองเช่น:
list = ["how ", "are ", "you "]


คุณได้เขียนคำตอบนี้ในลักษณะที่ทำให้เห็นว่าเหมาะสมกว่าในรูปแบบของความคิดเห็น จะเป็นประโยชน์มากขึ้นหากคุณขยายคำตอบนี้เพื่ออธิบายว่าเหตุใดสิ่งที่คุณแนะนำจึงใช้ได้ผล
Andon M. Coleman

1
ไม่สามารถใช้งานได้ในกรณีที่คุณไม่สามารถเข้าถึงรายการ (เช่นเมื่อสร้างด้วยinput(a).split(b))
TheSola10

เราไม่ควรเปลี่ยนสตริงภายในเพราะมันทำให้เราสูญเสียพื้นที่
Deepak Yadav
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.