بکندباز

تبدیل لیست به رشته در پایتون

لیستی داریم که می خواهیم آن را به رشته متنی تبدیل کنیم. مانند نمونه های زیر:

همانطور که می بینید لیست می تواند شامل رشته یا عدد باشد.

ورودی: ['I', 'love', 'backendbaz']
خروجی: I love backendbaz

ورودی: ['I', 'have', 4, 'apples', 'and', 18, 'bananas']
خروجی: I have 4 apples and 18 bananas

روش های مختلفی برای تبدیل لیست به رشته وجود دارد که با هم بررسی می کنیم:

روش اول: چرخیدن درون اعضای لیست با استفاده از حلقه for و اضافه کردن اعضا به یک رشته خالی.

قبل از اضافه کردن هر عضو به رشته، آن را به رشته تبدیل می کنیم (برای مواردی که عضو لیست عددی است.)

def convertListToString(myList):
    text = '' #رشته خالی

    for i in myList:
        text = text + str(i) + " "
        
    return text

    

print(convertListToString(['I', 'love', 'backendbaz']))
print(convertListToString(['I', 'have', 4, 'apples', 'and', 18, 'bananas']))

 

روش دوم: استفاده از متد ‎join()‎‎‎:

از متد ‎join()‎‎ برای کنار هم قرار دادن اعضای لیست و قرار دادن یک فاصله خالی میان آنها استفاده می کنیم:

def convertListToString(myList):
    return " ".join(myList)

print(convertListToString(['I', 'love', 'backendbaz']))

توجه! در صورتی که اعضای لیست عددی نیز باشند، روش بالا اروری در خروجی چاپ خواهد کرد. برای تبدیل اعضای لیست به رشته از یکی از دو روش زیر می توانیم در کنار متد join استفاده کنیم:

روش سوم: استفاده از متد ‎join()‎‎ و تابع ‎map()‎‎:

از تابع ‎map()‎‎ برای تبدیل اعضای لیست به رشته استفاده می کنیم:

def convertListToString(myList):
    return " ".join(map(str, myList))

print(convertListToString(['I', 'love', 'backendbaz']))
print(convertListToString(['I', 'have', 4, 'apples', 'and', 18, 'bananas']))

روش چهارم: استفاده از متد ‎join()‎‎ و list comprehension ها

def convertListToString(myList):
    return " ".join([str(l) for l in myList])

print(convertListToString(['I', 'love', 'backendbaz']))
print(convertListToString(['I', 'have', 4, 'apples', 'and', 18, 'bananas']))

 

روش پنجم: استفاده از آرگومان end:

به سادگی می توانیم با استفاده از عملگر end در تابع print اعضای لیست را در کنار هم در خروجی چاپ کنیم:

myList = ['I', 'love', 'backendbaz']
for i in myList:
    print(i, end=" ")

print("") #newline

myList = ['I', 'have', 4, 'apples', 'and', 18, 'bananas']
for i in myList:
    print(i, end=" ")

 

روش ششم: استفاده از متد functools.reduce:

from functools import reduce
s = ['I', 'have', 4, 'apples', 'and', 18, 'bananas']
 
listToStr = reduce(lambda a, b : a+ " " +str(b), s)
 
print(listToStr)
zohreh

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

دیدگاه‌ها

*
*

    aliurexa پاسخ

    دستتون درد نکنه

    MJN پاسخ

    بسیار عالی ممنون