از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
پایتون: رشته را به لیست با split() تقسیم کنید
سرفصلهای مطلب
داده ها می توانند اشکال و اشکال مختلفی داشته باشند – و اغلب به صورت رشته نمایش داده می شوند.
از یک فایل CSV یا متن ورودی، ما اغلب رشته ها را برای به دست آوردن لیستی از ویژگی ها یا عناصر تقسیم می کنیم.
در این راهنما، ما به روش تقسیم یک رشته به یک لیست در پایتون، با
split()
روش.
رشته را به لیست در پایتون تقسیم کنید
را split()
روش کلاس رشته نسبتاً ساده است. رشته را تقسیم میکند، یک جداکننده میدهد و فهرستی متشکل از عناصر جدا شده از رشته را برمیگرداند.
به طور پیشفرض، جداکننده روی یک فضای سفید تنظیم شده است – بنابراین اگر آرگومان جداکننده را حذف کنید، رشته شما تقسیم میشود. روی هر فضای خالی
بیایید نگاهی به رفتار آن بیاندازیم split()
روش:
string = "Age,University,Name,Grades"
lst = string.split(',')
print(lst)
print('Element types:', type(lst(0)))
print('Length:', len(lst))
رشته ما دارای عناصری بود که با کاما مشخص شده بودند، مانند یک فایل CSV (مقادیر جدا شده با کاما)، بنابراین جداکننده را به درستی تنظیم کرده ایم.
این منجر به لیستی از عناصر نوع می شود str
مهم نیست که چه نوع دیگری دارند می توان نمایندگی:
('Age', 'University', 'Name', 'Grades')
Element types: <class 'str'>
Length: 4
رشته را به فهرست تقسیم کنید، فضاهای سفید را برش دهید و حروف بزرگ را تغییر دهید
همه رشته های ورودی تمیز نیستند – بنابراین همیشه یک رشته با فرمت کامل برای تقسیم نخواهید داشت. گاهی اوقات، رشتهها ممکن است حاوی فاصلههای سفیدی باشند که نباید در «محصول نهایی» باشند یا حروف بزرگ و غیربزرگ ناسازگاری داشته باشند.
خوشبختانه، این کار بسیار آسان است process این لیست و هر عنصر موجود در آن، پس از اینکه آن را تقسیم کردید:
string = "age, uNiVeRsItY, naMe, gRaDeS"
lst = string.split(',')
print(lst)
این نتیجه در:
('age', ' uNiVeRsItY', ' naMe', ' gRaDeS')
خوب نیست! هر عنصر با یک فضای خالی شروع می شود و عناصر به درستی بزرگ نشده اند. اعمال یک تابع برای هر عنصر از یک لیست به راحتی از طریق یک ساده انجام می شود for
حلقه بنابراین ما می خواهیم a را اعمال کنیم strip()
/trim()
(برای خلاص شدن از فضاهای سفید) و یک تابع حروف بزرگ.
از آنجایی که ما نه تنها به دنبال بزرگ کردن حرف اول هستیم، بلکه بقیه را نیز با حروف کوچک نگه می داریم (برای اجرای مطابقت)، اجازه دهید یک تابع کمکی برای آن تعریف کنیم:
def capitalize_word(string):
return string(:1).capitalize() + string(1:).lower()
این روش یک رشته را می گیرد، آن را برش می دهد روی حرف اولش و با حروف بزرگ. بقیه رشته به حروف کوچک تبدیل می شود و سپس دو رشته تغییر یافته به هم متصل می شوند.
اکنون می توانیم از این روش در یک حلقه نیز استفاده کنیم:
string = "age, uNiVeRsItY, naMe, gRaDeS"
lst = string.split(',')
lst = (s.strip() for s in lst)
lst = (capitalize_word(s) for s in lst)
print(lst)
print('Element types:', type(lst(0)))
print('Length:', len(lst))
این باعث تمیزی می شود:
('Age', 'University', 'Name', 'Grades')
Element types: <class 'str'>
Length: 4
رشته را به لیست تقسیم کرده و به عدد صحیح تبدیل کنید
اگر با لیستی از اعداد صحیح کار می کنید چه اتفاقی می افتد؟ پس از تقسیم، نمی توانید عملیات عدد صحیح را انجام دهید روی اینها، چون ظاهراً رشته ای هستند.
خوشبختانه، ما می توانیم از همان استفاده کنیم for
حلقه مانند قبل برای تبدیل عناصر به اعداد صحیح:
string = "1,2,3,4"
lst = string.split(',')
lst = (int(s) for s in lst)
print(lst)
print('Element types:', type(lst(0)))
print('Length:', len(lst))
که اکنون نتیجه آن:
(1, 2, 3, 4)
Element types: <class 'int'>
Length: 4
رشته را با Limiter به لیست تقسیم کنید
علاوه بر جداکننده، split()
روش یک محدود کننده را می پذیرد – تعداد دفعاتی که یک تقسیم باید رخ دهد.
این یک عدد صحیح است و بعد از جداکننده تعریف می شود:
string = "Age, University, Name, Grades"
lst = string.split(',', 2)
print(lst)
در اینجا، دو انشعاب رخ می دهد، روی کامای اول و دوم و بعد از آن هیچ تقسیمی اتفاق نمی افتد:
('Age', ' University', ' Name, Grades')
نتیجه
در این راهنمای کوتاه، شما یاد گرفتید که چگونه یک رشته را به یک لیست در پایتون تقسیم کنید.
همچنین یاد گرفتهاید که چگونه فضاهای سفید را برش دهید و حروف بزرگ را به عنوان یک مرحله پردازش ساده در کنار تقسیم یک رشته به یک لیست، اصلاح کنید.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-08 01:53:04