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

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

通過循環創建對象

通過循環創建對象

蝴蝶不菲 2022-09-13 15:13:03
我想創建一個隨機用戶列表,我們一個給定的數字目前我能夠獲得隨機電子郵件的列表。我正在嘗試創建一個對象用戶,該對象將包含n個具有隨機信息的用戶。import randomimport stringdomains = ["gmail.com"]letters = string.ascii_lowercase[:12]def get_random_domain(domains):    return random.choice(domains)def get_random_name(letters, length):    return ''.join(random.choice(letters) for i in range(length))def generate_random_emails(nb, length):    users = {}    for j in range(nb):        users = {            'email':[get_random_name(letters, length) + '@' + get_random_domain(domains) for i in range(nb)],            'username': get_random_name(letters, length),            'Display_Name': get_random_name(letters, length)        }    return usersdef main():    print(generate_random_emails(4, 7))if __name__ == "__main__":    main()它又回來了{'email': ['[email protected]', '[email protected]', '[email protected]'], 'username': 'icliilf', 'DisplayName': 'efbdida'}我想實現的是得到這樣的東西    {{'email':'[email protected]', 'username':'kgfadjb','DisplayName':'kgfadjb'},    {'email':'[email protected]', 'username':'lifjekb','DisplayName':'lifjekb'},    {'email':'[email protected]', 'username':'cckcbdh','DisplayName':'cckcbdh'}}我知道我里面的循環做錯了什么generate_random_emails
查看完整描述

3 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

嘗試:


def generate_random_emails(nb, length):

    users = []

    for j in range(nb):

        users.append({

            'email': get_random_name(letters, length) + '@' + get_random_domain(domains),

            'username': get_random_name(letters, length),

            'Display_Name': get_random_name(letters, length)

        })


    return users

說明

  1. 您需要保存 for 循環中創建的用戶。目前,您只返回上次創建的用戶。一種解決方案是在循環內定義為列表和新用戶。usersappend

  2. 在電子郵件定義中,您不需要循環,因為您只需要為給定用戶提供封電子郵件。您可以直接設置:for

'email': get_random_name(letters, length) + '@' + get_random_domain(domains)

完整代碼

def generate_random_emails(nb, length):

    # Users output

    users = []

    # For desired number of users

    for j in range(nb):

        # Add one user with :

        #   - 1 email

        #   - 1 username

        #   - 1 display_name

        users.append({

            'email': get_random_name(letters, length) + '@' + get_random_domain(domains),

            'username': get_random_name(letters, length),

            'Display_Name': get_random_name(letters, length)

        })

    return users


print(generate_random_emails(4, 7))

# [{'email': '[email protected]', 'username': 'fjfgcfe', 'Display_Name': 'dliddfa'}, 

#  {'email': '[email protected]', 'username': 'bkjgdfe', 'Display_Name':'ceddfce'}, 

#  {'email': '[email protected]', 'username': 'jdekjcd', 'Display_Name': 'ijeffgi'},

#  {'email': '[email protected]', 'username': 'adgieki', 'Display_Name': 'idacgci'}]


查看完整回答
反對 回復 2022-09-13
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

您正在為 for 循環中的同一變量分配新值,而不是將其追加到列表中,然后返回該列表。users


請考慮以下情況:


def generate_random_emails(nb, length):

    users = []

    for j in range(nb):

        user = {

            'email': get_random_name(letters, length) + '@' + get_random_domain(domains),

            'username': get_random_name(letters, length),

            'Display_Name': get_random_name(letters, length)

        }

        users.append(user)


    return users

您還將為單個用戶生成三個隨機名稱。我不知道這是否是你的意圖,但也許你想生成一個隨機名稱,并在 中使用它。emailusernameDisplay_Name


查看完整回答
反對 回復 2022-09-13
?
MM們

TA貢獻1886條經驗 獲得超2個贊

你不能得到這個結構:


{{'email':'[email protected]', 'username':'kgfadjb','DisplayName':'kgfadjb'},

    {'email':'[email protected]', 'username':'lifjekb','DisplayName':'lifjekb'},

    {'email':'[email protected]', 'username':'cckcbdh','DisplayName':'cckcbdh'}}

因為它是一組字典。或者,如果命令是可散列的。只有可哈希對象才能是集合的元素。但是,您可以擁有一個詞典列表:


import random

import string

domains = ["gmail.com"]

letters = string.ascii_lowercase[:12] # why only a-k? but that's your choice


def get_random_domain(domains):

    return random.choice(domains)   


def get_random_name(letters, length):

    return ''.join(random.sample(letters, length))


def get_random_email(letters, length):

    return get_random_name(letters, length) + '@' + get_random_domain(domains)


def generate_random_users(nb, length):

    users = [

             {'email': get_random_email(letters, length)

              'username': get_random_name(letters, length),

              'Display_Name': get_random_name(letters, length)

             } for j in range(nb)

            ]

    return users


def main():

    print(generate_random_users(4, 7))


if __name__ == "__main__":

    main()


查看完整回答
反對 回復 2022-09-13
  • 3 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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