小编Bur*_*ter的帖子

在For循环Python中通过字典值从Iterated Total中减去

使用Python 2.7.

我有一个字典,团队名称作为键,值包含在列表中.第一个值是团队得分的运行量,第二个值是允许的运行:

NL = {'Phillies': [662, 476], 'Braves': [610, 550], 'Mets': [656, 687]}
Run Code Online (Sandbox Code Playgroud)

我有一个迭代每个键的函数,并提供整个字典得分和允许的总运行.我还希望能够从总数中减去每个团队,并创建联盟减去团队价值.

我首先尝试了以下方面:

def Tlog5(league, league_code):
    total_runs_scored = 0
    total_runs_allowed = 0
    for team, scores in league.iteritems():
        total_runs_scored += float(scores[0])
        total_runs_allowed += float(scores[1])
        team_removed_runs = total_runs_scored - scores[0]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎只是从已经迭代的值而不是完整的总和中减去.因此,对于字典中的第一个团队,team_removed_runs为0,对于第二个团队,它是前两个团队减去第二个团队总数的总计(仅剩下第一个团队总数).

我试图将team_removed_runs = total_runs_scored - scores [0]移出for循环,但后来我只获得了字典中最后一个团队的值.

有没有办法可以为字典中的所有团队返回team_removed运行?

谢谢你的帮助!

python iteration dictionary list subtraction

2
推荐指数
1
解决办法
1228
查看次数

麻烦迭代python

使用Python 2.7.

我希望能够输入一个数字,并返回完成方程win_percentage = observe的x和y的所有值集.

def Rlog5(observed):
    z = float(observed)/1000
    for x in range(350, 650, 1):
        y = 1000 - x
        win_percentage = (float(x)-(float(x)*float(y)))/(float(x)+float(y)-(2*(float(x)*float(y))))
        if win_percentage = observed:
           print (z, float(x), float(y))
Run Code Online (Sandbox Code Playgroud)

当我运行该功能时,我什么都没得到.没有错误,但也没有值(我尝试过使用和不使用浮点数x,但我认为它需要它们,因为win_percentage应该是一个浮点数).最令人沮丧的部分是我有这个代码基本上做同样的事情,它工作正常:

def solve(numNuggets):
    for numTwenties in range(0, numNuggets/20 + 1):
            for numNines in range(0, (numNuggets - numTwenties*20)/9 + 1):
                numSixes = (numNuggets - numTwenties*20 - numNines*9)/6
                totNuggets = 20*numTwenties + 9*numNines + 6*numSixes
                if totNuggets == numNuggets:
                    print (numSixes, numNines, numTwenties)
Run Code Online (Sandbox Code Playgroud)

我知道这是一个新手问题,但我的智慧结束了......

python iteration floating-point

2
推荐指数
1
解决办法
132
查看次数

Python中的递归问题

使用python 2.7.

以下代码允许我输入两支球队(WP_1和WP_2)的胜率百分比(k)并确定两支球队的胜率百分比,即一支球队在赛季结束时获胜的概率( Playoff_Probability):

def PlayoffProb(WP_1, k, WP_2):
    TProb_2 = 0
    p = float(WP_1)/1000
    q = float(WP_2)/1000
    n = 162.0
    G = math.factorial(n)/(math.factorial(k)*math.factorial(n-k))
    Prob = G*(p**k)*((1-p)**(n-k))
    for c in range(0, k):
        G_2 = math.factorial(n)/(math.factorial(c)*math.factorial(n-c))
        Prob_2 = G_2*(q**c)*(1-q)**(n-c)
        TProb_2 += Prob_2
    Playoff_Probability = Prob*TProb_2
    print Playoff_Probability
    print TProb_2
Run Code Online (Sandbox Code Playgroud)

但更简单的是,如果函数可以递归写入,那么它将对每个可能的k值执行相同的操作,并返回结束本赛季的总概率更多的胜利(我相信应该由每个值的Playoff_Probability都通过k的函数运行,我试图将其设置为等于Total_Playoff_Probability).

我尝试了下面的代码,但是我得到一个TypeError告诉我'float'对象在返回Total_Playoff_Probability步骤时不可调用.我也完全不确定我是否正确设置了递归.

def PlayoffProb2(WP_1, k, WP_2):
    TProb_2 = 0
    Total_Playoff_Probability = 0
    p = float(WP_1)/1000
    q = float(WP_2)/1000
    n = 162.0
    G = math.factorial(n)/(math.factorial(k)*math.factorial(n-k))
    Prob = G*(p**k)*((1-p)**(n-k))
    for c in range(0, k):
        G_2 …
Run Code Online (Sandbox Code Playgroud)

python recursion

2
推荐指数
1
解决办法
191
查看次数

仅从mySQL中的特定字符的左侧和右侧获取字符

我有一个列表,其中一个变量是Player,如果有一个玩家名字然后是"_",并且姓氏如下:

Mike_Gonzalez
Run Code Online (Sandbox Code Playgroud)

我想从播放器变量创建两个新变量.第一个变量是firstName,所以我希望所有字符都在" "的左边.第二个变量是lastName,它将是" " 右边的所有字符.

我尝试过使用LEFT(播放器,LOCATE('_',播放器)),但是当我这样做时,新变量包含_.

我如何运行代码,我可以在没有_的情况下获取名字和姓氏?

谢谢你的帮助.

mysql string locate

1
推荐指数
1
解决办法
5145
查看次数

将列表的第一个值附加到另一个列表的第一个值; 蟒蛇

在python 2.7中工作.

我有两个列表(简化以使解释更清楚).

T = [[1,0], [1,0], [0,5], [3, -1]]
B = [[1], [3], [2], [2]]
Run Code Online (Sandbox Code Playgroud)

我想附加第二个列表(B),以便将B列表的第一个值附加到T列表中的第一个列表,依此类推.

前 - 我希望输出看起来像:

T = [[1, 0, 1], [1, 0, 3], [0, 5, 2], [3, -1, 2]]
Run Code Online (Sandbox Code Playgroud)

我尝试过使用不同类型的追加函数,但我没有找到任何有效的函数.知道python,我确信有办法.

python list append

0
推荐指数
1
解决办法
96
查看次数