亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我把for拿出來放在外面就不行了呢?

為什么我把for拿出來放在外面就不行了呢?我知道要求是要把所有字符串打印在一個list里面,把for拿出來以后我以為會分開不同行打印,但是根本運行不了,這是為什么?

def toUppers(L):
??? for x in L:
??????? return [x.upper() if isinstance(x, str)]

print toUppers(['Hello', 'world', 101])

正在回答

3 回答

列表生成式顧名思義 你首先得是一個列表。你的這句[x.upper() if isinstance(x, str)],其中x.upper()并不是列表,只是列表之中的一個元素,所以后面的過濾條件并不能起作用。你可以看看這個博客https://www.cnblogs.com/yyds/p/6281453.html

1 回復 有任何疑惑可以回復我~
#1

無她

這波解釋可以,學習到了;我原本以為錯誤原因跟return有關。
2019-05-29 回復 有任何疑惑可以回復我~

大哥你好好看列表生成式的意思再說吧,你這行[x.upper() if isinstance(x, str)]已經就不是列表生成式了!樓上那位想想表達的意思是不用列表生成式的寫法而已!big fish!

0 回復 有任何疑惑可以回復我~
#1

無她

English:your 'big fish' is very Dazzling! I get something from here.Thank you. 中文:你這個”big fish”實屬有點東西,get到了,有才。
2019-05-29 回復 有任何疑惑可以回復我~

你要搞清楚你這么寫究竟符不符合它的語法吧?

def?toUppers(L):
????l=[]
????for?x?in?L:
????????if?isinstance(x,?str):
????????????l.append(x.upper())
????return?l

print?toUppers(['Hello',?'world',?101])


0 回復 有任何疑惑可以回復我~
#1

慕仙9347523 提問者

能否說詳細一點?就是不知道語法錯在了哪里 在定義的函數里為什么第一步要創建一個空的Llist呢?這樣的話輸入指令里的那個Llist不就被清空了嗎?
2018-10-24 回復 有任何疑惑可以回復我~
#2

無她 回復 慕仙9347523 提問者

python中是區分大小寫的,l[]和L[]是不同的,上述代碼中,新建了一個l[]是為了存儲變成大寫之后的元素,在輸出時也是輸出的l[],輸出一樣,而且輸出還是list。不存在你說的清空不清空的問題,而且就算l[]和L[]一樣,也不能說是清空,只能說是覆蓋。好了,回答完畢。
2019-05-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758392    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為什么我把for拿出來放在外面就不行了呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號