社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Alexander

Alexander 最近回复了
3 年前
回复了 Alexander 创建的主题 » 系统。refcount()返回的值比预期的python3大得多

int 这很特别。

它的值非常多(双关语)而且很小,这是远对象开销方面最糟糕的情况(它浪费时间进行分配,GCs变得更慢,因为它们有更多堆对象要扫描,并且浪费时间进行引用计数和取消分配)。通常情况下,语言运行时会花费大量时间来优化特殊情况,比如 智力 , bool

根据Python的具体实现,有可能 智力 对象表示为:

  1. 常规的、普通的堆分配对象(即,没有特殊的优化)。
  2. 作为常规的堆分配对象,但使用一个共享对象池来表示所有最常见的值。(例如,每一次 1 是同一个对象,被引用 到处都是 1. (已使用)
  3. 或者作为一个 tagged pointer ,这完全不涉及堆分配(对于适当小的整数值)。

在案例2或3中,如果它是“普通”对象,它的引用计数将不是您可能期望的。

5 年前
回复了 Alexander 创建的主题 » 用于格式化字符串的Python解包列表[重复]

下面是更完整的回答:

def convert_player_types_to_str(player_types):
    n = len(player_types)
    if not n:
        return ''
    if n == 1:
        return player_types[0]
    return ', '.join(player_types[:-1]) + f' and {player_types[-1]}'

>>> convert_player_types_to_str(['normal'])
'normal'

>>> convert_player_types_to_str(['normal', 'ghost'])
'normal and ghost'

>>> convert_player_types_to_str(['normal', 'ghost', 'goblin'])
'normal, ghost and goblin'
5 年前
回复了 Alexander 创建的主题 » Python Dataframe:基于特定条件删除重复项

尝试首先根据距离对数据帧进行排序,然后删除重复的商店。

df = shops_df.sort_values('Distance')
df = df[~df['Shop ID'].duplicated()]  # The tilda (~) inverts the boolean mask.

或者只是一个链式表达式(每个注释来自@chmielcode)。

df = (
    shops_df
    .sort_values('Distance')
    .drop_duplicates(subset='Shop ID', keep= 'first')
    .reset_index(drop=True)  # Optional.
)
5 年前
回复了 Alexander 创建的主题 » python pandas:按其他列分组时创建累积平均值

即使名字没有按 transforming 这个 expanding 函数..

>>> df.assign(cumAverage=df.groupby('name', sort=False)['value'].transform(lambda x: x.expanding().mean()))
   name  value  cumAverage
0  Jack    0.0       0.000
1  Jack    1.0       0.500
2  Jack    0.5       0.500
3  Jack    1.0       0.625
4  Jill    0.0       0.000
5  Jill    2.0       1.000

# Unsorted dataframe.
df = pd.DataFrame({"name": ['Jack'] * 3 + ['Jill'] * 2 + ['Jack'], "value": [0, 1, .5, 0, 2, 1]})
>>> df.assign(cumAverage=df.groupby('name', sort=False)['value'].transform(lambda x: x.expanding().mean()))
   name  value  cumAverage
0  Jack    0.0       0.000
1  Jack    1.0       0.500
2  Jack    0.5       0.500
3  Jill    0.0       0.000
4  Jill    2.0       1.000
5  Jack    1.0       0.625
6 年前
回复了 Alexander 创建的主题 » 使用python从一系列日期中检查项目列表

您可以使用条件列表理解:

import datetime as dt

f = '%d/%m/%Y'  # Date format.

>>> [date for date in c 
     if dt.datetime.strptime(a, f) 
     <= dt.datetime.strptime(date, f) 
     <= dt.datetime.strptime(b, f)]
['01/08/2017',
 '20/08/2017',
 '21/08/2017',
 '22/08/2017',
 '23/08/2017',
 '24/08/2017',
 '25/08/2017',
 '26/08/2017',
 '27/08/2017',
 '28/08/2017']