在python中添加元素到字典?

Typ*_*on2 6 python random dictionary

我在这里比较新,所以请告诉我是否有任何我应该知道的事情或任何错误我都是明智的做法!

我试图通过随机选择将字符添加到字典中,但我的代码似乎不起作用!

文件:sports.txt

Soccer, Joshua
Lacrosse, Naome Lee
Soccer, Kat Valentine
Basketball, Huong
Tennis, Sunny
Basketball, Freddie Lacer
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

def sportFileOpen():

    sportFile = open("sport.txt")
    readfile = sportFile.readlines()
    sportFile.close()
    return(readfile)


def sportCreateDict(sportFile):

    sportDict = {}

    for lines in sportFile:
        (sport, name) = lines.split(",")

        if sport in sportDict:
            sportDict[sport].append(name.strip())

        else:
            sportDict[sport] = [name.strip()]


    return(sportDict)



def sportRandomPick(name, sport, sportDict):


    if sport in sportDict:

        ransport = random.choice(sportDict.keys())

        sportDict[ransport].append(name)


        print(name, "has been sorted into", ransport)


def main():

    sportFile = sportFileOpen()

    sportDict = sportCreateDict(sportFile)


    name = input("Enter the name: ")

    preferredSport = input("Which sport do they want? ")

    sportRandomPick(name, preferredSport, sportDict)


main()
Run Code Online (Sandbox Code Playgroud)

我试图允许用户输入他们的名字和喜欢的运动组,并且他们喜欢的任何运动将有更高的机会被随机选择然后其他人(例如,如果杰森选择足球,他获得足球的机会可能加倍) .

我不希望有人为我编写代码,我知道这很费时间,你有更好的事情要做!但任何人都可以向我解释我将如何做到这一点?我理解如何做出随机选择,但我不知道如何"加倍"机会.

我运行代码时也会遇到此错误: NameError: global name 'random' is not defined

我以为我正在做那个部分,但现在我被卡住了.有人可以给他们两分钱吗?

Yev*_*ych 1

尝试这个:

def sportRandomPick(name, sport, sportDict):
    if sport in sportDict:
        ransport = random.choice(list(sportDict.keys()) + [sport]) # list of sports will contain preferred sport twice.

        sportDict[ransport].append(name)

        print(name, "has been sorted into", ransport)
Run Code Online (Sandbox Code Playgroud)

这将使选择首选运动的机会增加 2 倍。

并且不要忘记import random