بکندباز

متد ‎split()‎‎ در پایتون

مثال

تقسیم کردن جمله به صورت کلمه به کلمه و تبدیل آن به یک لیست که هر کلمه یک عضو از لیست است:

txt = "welcome to the jungle"

x = txt.‎split()‎

print(x)

توضیحات

متد ‎split()‎ متن را به یک شکل مشخص تقسیم کرده و به یک لیست تبدیل می کند. جدا کننده به صورت پیش فرض “فضای خالی” است در نتیجه به صورت پیشفرض متن به کلماتش تقسیم می شود. اما این جدا کننده را می توان به پارامتر ورودی متد، تعیین کرد. اگر پارامتر maxsplit تعیین شود، فقط به تعداد مشخص شده به علاوه 1 تکه ی تقسیم شده ایجاد خواهد شد.

سینتکس

string.split(separator, maxsplit)

مقادیر پارامتر ها

پارامتر توضیح
separator اختیاری. جدا کننده- پیشفرض: فضای خالی
maxsplit اختیاری. تعداد تکه هایی که باید ایجاد شود. پیشفرض = 1- یعنی تمام تکه های ممکن

مثال

تقسیم کردن متن و استفاده از علامت کاما به همراه فضای خالی به عنوان جداکننده:

txt = "hello, my name is Peter, I am 26 years old"

x = txt.split(", ")

print(x)

مثال

استفاده از کاراکتر # به عنوان جداکننده:

txt = "apple#banana#cherry#orange"

x = txt.split("#")

print(x)

مثال

تقسیم متن به 2 تکه:

txt = "apple#banana#cherry#orange"

# setting the maxsplit parameter  to 1, will return a list with 2 elements!
x = txt.split("#", 1)

print(x)

 

مثال هایی از استفاده از این تابع در کد:


اگر سوالی در رابطه با این تابع داری، می تونی توی بخش کامنت ها بپرسی:

backendbaz

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*

    رضا پاسخ

    با سلام ممنون از آموزش خوبتان یه سوال داشتم (فرض کنید یک متنی در اختیار شما قرار دارد. برنامه ای بنویسید که ایمیلهای موجود در متن را پیدا کرده و چاپ نماید)
    با استفاد از متد split() چطور می توان نوشت

      ‏زهره احمدی پاسخ

      سلام. خیلی ممنون
      با متد split که نمیشه این کار رو کرد. این متد فقط متن رو بر اساس یک کاراکتر یا یک کلمه خاص تکه تکه می کنه. برای اینکار باید از Regex ها استفاده کنید. با split نهایتاً می تونید تمام کلمات موجود در متن رو پیدا کنید که بعضی از اون کلمات می تونن آدرس ایمیل باشند. و بعد یکی یکی کلمات رو چک کنید:

      
      import re
       
      # Regex برای اعتبار سنجی ایمیل
      regex = '^(\w|\.|\_|\-)+[@](\w|\_|\-|\.)+[.]\w{2,3}$'
       
       
      def check(email):
          if(re.search(regex, email)):
              return True
          else:
              return False
       
       
      text = "hi ankitrai326, the email ankitrai326@gmail.com is for you, and my.ownsite@our-earth.org and your website is ankitrai326.com"
      
      for word in text.split():
          if(check(word)):
              print(word)
      
      
    محمدعلی پاسخ

    سلام. سپاس فراوان. بسیار عالی، مختصر ومفید.

    حیدری پاسخ

    سلام خیلی ممنون از اموزش های خوبتون 
    برنامه ای میخوام که وقتی اسم و فامیلی کاربر را گرفت بینش ... بزاره با اسپلیت 

    علیرضا پاسخ

    سلام 
    چه طوری یک txt را براساس علامت سوال و نقطه و علامت تعجب شکست همزمان 

    فاطمه پاسخ

    برای تقسیم بندی یه لیست عدیی ۱۰ تایی به لیست های کوچیک تره ۳ تایی چیکار باید کرد؟

      zohreh پاسخ

      برای تقسیم بندی یک لیست عددی ۱۰ تایی به لیست های کوچکتر ۳ تایی در پایتون، می توانید از تابع `chunk` در ماژول `itertools` استفاده کنید. این تابع به شما امکان می دهد لیست را به تعداد مورد نظر تقسیم کنید. برای تقسیم لیست به لیست های کوچکتر ۳ تایی، می توانید از کد زیر استفاده کنید:

      from itertools import zip_longest
      
      def chunk_list(lst, size):
          return list(zip_longest(*[iter(lst)] * size))
      
      my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      chunked_list = chunk_list(my_list, 3)
      print(chunked_list)
      

       

      این کد لیست اصلی را به لیست های کوچکتر ۳ تایی تقسیم می کند و نتیجه را در متغیر `chunked_list` ذخیره می کند. سپس نتیجه را چاپ می کند.

    بهروز پاسخ

    سلام . 
    یک سوال دارم  . ممنون میشم راهنمایی کنید.
    یک فایل word دارم که باید متن فارسی داخل اون رو به صورت ستونی بنویسم ، یعنی هر یک کلمه از متن را داخل یک خط نوشته بشه و برای کلمه بعدی بره خط بعدی ... در آخر هم کل متن ستونی چاپ شده رو دوباره داخل فایل word جدید تحویل بده...
    ممنون میشم راهنمایی کنید 
    باتشکر از سایت خوبتون

      zohreh پاسخ

      سلام. وقت بخیر

      اول که برای خوندن اطلاعات درون فایل ورد می تونید از کد زیر استفاده کنید:

      with open(input_file, 'r', encoding='utf-8') as file:
              original_text = file.read()

      که به جای input_file باید آدرس فایل ورد رو قرار بدید. بعد با استفاده از متد split محتوای original_text رو به کلماتش تقسیم کنید و با دستور column_text = '\n'.join(words) لیست کلمات رو با فاصله یک خط از هم توی یک متغیر جداگانه ذخیره کنید.

      حالا باید متغیر column_text رو در یک فایل جدید ذخیره کنید.

      برای اینکار می تونید از کتابخانه docx استفاده کنید.

      from docx import Document

      و از کد زیر برای نوشتن متن ستونی در فایل استفاده کنید. (به جای output_file آدرس فایل خروجی رو قرار بدید):

      # نوشتن متن ستونی در فایل خروجی
          document = Document()
          document.add_paragraph(column_text)
          document.save(output_file)
    امیر پاسخ

    با درود 
    ببخشید سوالی داشتم موقعی که از تابع split استفاده میکنیم، وقتی متن رو بر اساس کاراکتری تفکیک میکنه تو قسمت تفکیک شده اون کاراکتر رو نمی‌نویسن؟

      zohreh پاسخ

      سلام. وقت بخیر

      نه دیگه اون کاراکتر نوشته نمیشه