在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ python 列表內字符串首字母大寫問題

python 列表內字符串首字母大寫問題

問題源自廖雪峰python教程里面map/reduce里面的一章
用函數還有map,讓列表里面的字符串首字母都大寫,然后返回列表

鏈接

初始代碼如下,for in 迭代,然后返回字符串的capitalize(), 但是返回的都是單個的,不清楚為什么后面的不返回,我前面學過點js, 我記得應該是要都返回的
只返回單個

然后我試著用map對每個都進行操作,代碼如下,但是卻只返回列表里面字符串的首字母
返回首字母

答案是我看到下面評論的,我可以理解labmda函數,也試著跑了下是ok的,但是我直接把lambda匿名函數轉換為常用函數的時候卻顯示list沒有capitalize的屬性,這個我理解,但是我不理解那為什么lambda函數可以跑起來
對的

錯的

求解答,謝謝!

回答
編輯回答
離觴

第一個只返回一個值是因為每個函數只會返回一次,然后就結束了。
第二個用map方法時,是把x列表的每一項代入到到normalize函數中執(zhí)行,每次放入一個x中的字符串到normalize函數,因此只返回第一個字母,原因同上(函數中的循環(huán)執(zhí)行第一次就返回結果了)。
后面的錯誤都是因為capitalize方法是字符串才有的,list沒有這個方法。

--補充
用map的時候真實的邏輯是這樣的:

    for i in 'sdas':
        return i.capitalize()
    for i in 'dsdwds':
        return i.capitalize()  

每個都只執(zhí)行到第一個字母就結束了。

2018年7月11日 04:37