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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使單個字符串成為列表的一部分

使單個字符串成為列表的一部分

開滿天機 2023-02-22 15:55:42
你們能幫幫我嗎..我試圖找到如何將單個字符串放入列表中的方法。問題是這樣的:系統使用 validate_users 函數來檢查用戶列表是否有效。有效用戶是至少 3 個字符長的用戶。例如,['taylor', 'luisa', 'jamaal'] 都是有效用戶。在這個例子中調用它時,有些地方是不對的。你能找出要解決的問題嗎? def validate_users(users):      for user in users:        if is_valid(user):          print(user + " is valid")        else:          print(user + " is invalid")        validate_users("purplecat")我試過但仍然沒有得到正確的結果,purplecat is valid結果應該是這樣的,但仍然喜歡p is invalidu is invalidr is invalidp is invalidl is invalide is invalidc is invalida is invalidt is invalid有人可以解釋嗎?
查看完整描述

4 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您將 'purplecat' 作為字符串傳遞,因此當循環通過時,它會將字符串的每個元素視為要迭代的一件事。嘗試將其放入單元素列表中:

validate_users(['purplecat'])


查看完整回答
反對 回復 2023-02-22
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

問題是你在這里迭代一個字符串:for user in users但是users == "purplecat"

嘗試這樣調用您的函數:validate_users(["purplecat"])


查看完整回答
反對 回復 2023-02-22
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

在此示例中,您將字符串“purplecat”作為函數 validate_users 的參數傳遞。所以,用戶=“紫貓”

在 validate_users 函數中,您使用了迭代參數用戶的 for 循環。在python中,如果對字符串類型的變量使用for循環,那么for循環會遍歷字符串中的所有字符。

如果你想得到像“purplecat is valid”這樣的輸出,那么你需要使用“validate_users(["purplecat"])”。

在這種情況下,您傳遞了一個字符串列表,因此 validate_users 中的 for 循環將迭代列表中的所有字符串(在這種情況下,它只會迭代一次,因為列表只有 1 個元素)。


查看完整回答
反對 回復 2023-02-22
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

正如其他人所指出的那樣,如果您想制作一個包含字符串的單元素列表,您可以使用字符串對象[my_string]在哪里,例如。my_string"purplecat"


如果在參數中傳遞字符串,則有幾個備選方案可以讓您的函數更優雅地執行操作users。


一種選擇是接受字符串作為列表的替代,users如果變量不是列表,則將其重新分配給單元素列表:


def validate_users(users):

    if not isinstance(users, list):

        users = [users]

    # then carry on as before

另一種選擇是以更可預測的方式失敗:


def validate_users(users):

    if not isinstance(users, list):

        raise ValueError("users must be a list")

    # then carry on as before

然后,您可以編寫函數的其余部分,而不必擔心是否向您傳遞了列表以外的內容。在后一種情況下,由調用者確保它傳入列表或處理任何ValueError.


為簡單起見,我在這里不考慮元組,盡管您可能希望接受元組作為列表的替代方案,例如


    if not isinstance(users, list):

你可以有


    if not isinstance(users, (list, tuple)):


查看完整回答
反對 回復 2023-02-22
  • 4 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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