小编U10*_*ard的帖子

更改 url 参数

如何更改 url 的参数值?没有正则表达式。

现在我试试这个,但它很长:

from urllib.parse import parse_qs, urlencode,  urlsplit
url = 'http://example.com/?page=1&text=test#section'
param, newvalue = 'page', '2'

url, sharp, frag = url.partition('#')
base, q, query = url.partition('?')
query_dict = parse_qs(query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
url_new = f'{base}{q}{query_new}{sharp}{frag}'
Run Code Online (Sandbox Code Playgroud)

另外,我通过 urlsplit 尝试过:

parsed = urlsplit(url)
query_dict = parse_qs(parsed.query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
parsed.query = query_new
url_new = urlencode(parsed)
Run Code Online (Sandbox Code Playgroud)

但就urlparsed.query = query_new它上升错误AttributeError: can't set attribute

python url urllib

6
推荐指数
2
解决办法
2204
查看次数

根据组号创建新列表并添加分数

如果a在另一个列表中有一个列表,看起来像这样......

[['Harry',9,1],['Harry',17,1],['Jake',4,1], ['Dave',9,2],['Sam',17,2],['Sam',4,2]]
Run Code Online (Sandbox Code Playgroud)

我如何将中间元素添加到一起,所以对于'哈利'来说,例如,它显示为['Harry', 26]和Python也可以查看组号(第3个元素)并仅输出获胜者(分数最高的那个是中间元素).因此,对于每个群体,都需要有一个胜利者.所以最终的输出显示:

[['Harry', 26],['Sam',21]]
Run Code Online (Sandbox Code Playgroud)

这个问题不是一个重复:它还有第三个元素,我被困在其中

类似的问题给了我一个答案:

grouped_scores = {}
for name, score, group_number in players_info:
    if name not in grouped_scores:
        grouped_scores[name] = score
        grouped_scores[group_number] = group_number 
    else:
        grouped_scores[name] += score
Run Code Online (Sandbox Code Playgroud)

但是这只会增加得分,并不会从每个组中取得胜利者.请帮忙.

我曾经想过做这样的事情,但我不确定该做什么......

grouped_scores = {}
for name, score, group_number in players_info:
    if name not in grouped_scores:
        grouped_scores[name] = score
    else:
        grouped_scores[name] += score
    for group in group_number:
        if grouped_scores[group_number] = group_number:
            [don't know what to do here]
Run Code Online (Sandbox Code Playgroud)

python arrays list python-3.x

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

在Python 2.7中使用加号(+)连接大括号({})和`format`是否合适?

我正在尝试编写干净简洁的代码,并且在很多代码中,我看到有时候我看到人们的代码不一致.我问的是,有没有这样的实例

print("Cars on the road: " + cars)

比这更合适

print("Cars on the road: {}".format(cars))

或者只是一个偏好的问题?

python string concatenation string-formatting python-2.7

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

classinfo类型列表

我正在寻找的只是可能值的列表,classinfo因为该文档未提供任何值,而且我似乎无法在线找到其他任何位置,更不用说SO了。

python types class isinstance python-3.x

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

熊猫-Python-如何减去两个不同的日期列

试图用今天的日期减去created_date列填充一列,但出现以下错误:TypeError:-的不支持的操作数类型:'str'和'str'

import datetime
now = datetime.date.today()
today = '{0:%m/%d/%Y}'.format(now).format(now)
today
data['Aging'] = today
data['Aging'] = data['Aging'].sub(data['Created_Date'], axis=0)
Run Code Online (Sandbox Code Playgroud)

TypeError:-:'str'和'str'不支持的操作数类型

python datetime subtraction pandas

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

函数返回列表中有多少个整数元素是同一列表中其他元素的精确平方

任务:

编写一个Python函数,它返回列表中有多少个整数元素是同一列表中其他元素的精确平方.假设列表不包含负数,并且没有重复项.

此函数接受一个列表并返回计数.例如,如果x是[3,4,0,2,1,9,25],则sum返回4,因为3*3 = 9,0*0 = 0,1*1 = 1,2*2 = 4.

这是我的代码:

x = [3,4,0,2,1,9,25]
def count(x):
    sum = 0
    for i in x:
       if i*i in x is True:
            sum += 1
    return sum
Run Code Online (Sandbox Code Playgroud)

当我运行count(x)时输出为0而不是4,我认为逻辑是正确的.

python

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

大熊猫添加一列,只有一行

这听起来有点奇怪,但是我认为这正是我现在需要的:

我有几个熊猫数据框,其中包含带有浮点数的列,例如:

   a  b  c
0  0  1  2
1  3  4  5
2  6  7  8
Run Code Online (Sandbox Code Playgroud)

现在,我想添加一列,仅包含一行,并且该值等于列“ a”的平均值,在这种情况下为3.0。因此,新的数据框将如下所示:

   a  b  c  average
0  0  1  2  3.0
1  3  4  5
2  6  7  8
Run Code Online (Sandbox Code Playgroud)

并且下面的所有行都是空的。

我已经尝试过类似的事情,df['average'] = np.mean(df['a'])但是那使我整整达到了3.0。任何帮助将不胜感激。

python dataframe pandas

5
推荐指数
2
解决办法
1460
查看次数

foo:'bar'| 冒号在这个python表达式中做了什么?

我刚刚偶然发现了python解释器的奇怪行为.错误印刷,我在声明变量时放置了冒号而不是等号.

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
>>> foo: 'bar'
>>>
Run Code Online (Sandbox Code Playgroud)

之前没有声明变量foo.令人惊讶的是,Python没有抛出异常,但也没有做任何其他事情.

这是某种新语法吗?它的目的是什么?


PS Python 2.7按预期抛出异常:

Python 2.7.10 (default, Aug 17 2018, 17:41:52)
>>> foo: 'bar'
  File "<stdin>", line 1
    foo: 'bar'
       ^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud)

python syntax colon

5
推荐指数
0
解决办法
41
查看次数

根据 2 列的范围将新行插入到 Pandas 数据框中

我有一个 df 像:

ID       value1   start     end
 1         100     1        2       
 1         200     2        4
 2         50      1        1
 2         30      3        5 
Run Code Online (Sandbox Code Playgroud)

我想为开始和结束之间的每个值填充新行

最终的 df 应如下所示,其中 period 是开始和结束之间的每个唯一值

    ID       value1      period     
     1         100     1        
     1         100     2            
     1         200     2 
     1         200     3 
     1         200     4       
     2         50      1        
     2         30      3    
     2         30      4 
     2         30      5     
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

将不均匀的值更改为特定的偶数

我有一个混合数据类型的数据框,我想更改 str 单元格的值(每个单元格由两个字母加三个数字组成),以便奇数变为偶数,但数字会减少。AB123 应该变成 AB122 而不会改变它之前的字母。

这是一个混合类型的示例数据框:

df = pd.DataFrame({'Opportunity':['AB122','AB123','AB125', 'AB124'],
           'Quantity': [2, 3, 4, 1],
           'Member': ["AACC", "AACC", "AACC", 'DDEE']})


print (df)
  Opportunity  Quantity Member
0       AB122         2   AACC
1       AB123         3   AACC
2       AB121         4   AACC
3       AB120         1   DDEE
Run Code Online (Sandbox Code Playgroud)

我希望结果是:

print (df2)

  Opportunity  Quantity Member
0       AB122         2   AACC
1       AB122         3   AACC
2       AB120         4   AACC
3       AB120         1   DDEE
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

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