لیستی داریم که می خواهیم آن را به رشته متنی تبدیل کنیم. مانند نمونه های زیر:
همانطور که می بینید لیست می تواند شامل رشته یا عدد باشد.
ورودی: ['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)
دستتون درد نکنه
بسیار عالی ممنون