【问题标题】:Adding element to a dictionary in python?在python中将元素添加到字典中?
【发布时间】:2017-04-08 03:43:12
【问题描述】:

我在这里比较新,所以请告诉我是否有什么我应该知道的或者我在礼貌上犯的任何错误!

我正在尝试通过随机选择将内容添加到字典中,但我的代码似乎不起作用!

文件: 运动.txt

Soccer, Joshua
Lacrosse, Naome Lee
Soccer, Kat Valentine
Basketball, Huong
Tennis, Sunny
Basketball, Freddie Lacer

到目前为止我的代码:

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()

我试图让用户输入他们的姓名和喜欢的运动组,并且他们喜欢的任何运动都比其他运动更有可能被随机选择(例如,如果 Jason 选择足球,他参加足球的机会可能翻倍)。

我不希望任何人为我编写代码,我知道这很耗时,而且您还有更好的事情要做!但是任何人都可以向我解释我将如何去做吗?我了解如何做出随机选择,但我不知道如何将机会“加倍”。

我在运行代码时也不断收到此错误:NameError: global name 'random' is not defined

我以为我在做那部分是正确的,但现在我被卡住了。任何人都可以为此付出两分钱吗?

【问题讨论】:

  • 需要导入随机模块。只需将其添加到代码顶部:import random。无论如何,这将解决错误。
  • 哦,我明白了!谢谢!!

标签: python dictionary random


【解决方案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)

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

别忘了import random

【讨论】:

  • 感谢解释如何做到这一点!我现在将根据我的需要对其进行定制!
【解决方案2】:

我假设您正在尝试使用来自python random.choicerandom.choice

您需要确保将其导入文件顶部:


import random

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)

【讨论】:

  • 感谢您指出这一点!我完全忘记了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 2017-06-04
  • 2019-08-23
  • 1970-01-01
  • 2017-07-14
相关资源
最近更新 更多