小编Dee*_*ace的帖子

函数后的括号是什么意思

有人问我在Python 3编写一个函数为:写一个调用的函数general_poly,这将,例如,评估general_poly([1, 2, 3, 4])(10)12341*10^3 + 2*10^2 + 3*10^1 + 4*10^0.

现在我不明白第二个括号是什么(10)意思.

我的功能如何general_poly知道,将这个值放在自身内部并使用它?

python function python-3.x

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

列表理解有效,但不适用于循环 - 为什么?

我对自己有点恼火,因为我无法理解为什么一个问题的解决方案有效,但另一个没有.就像在,它指出我对(基本)大熊猫的理解不足,这让我很生气!

无论如何,我的问题很简单:我有一个'坏'值列表('bad_index'); 这些对应于数据帧('data_clean1')上的行索引,我想删除相应的行.但是,由于值将随每个新数据集而变化,因此我不想将错误值直接插入代码中.这是我先做的事情:

bad_index = [2, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 29]

for i in bad_index:
    dataclean2 = dataclean1.drop([i]).reset_index(level = 0, drop = True)
Run Code Online (Sandbox Code Playgroud)

但这没效果; data_clean2与data_clean1完全相同.我的第二个想法是使用列表推导(如下所示); 这很好.

bad_index = [2, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 29]

data_clean2 = data_clean1.drop([x for x in bad_index]).reset_index(level = 0, drop = True)
Run Code Online (Sandbox Code Playgroud)

现在,为什么列表理解方法有效而不是'for'循环?我已经编写了几个月的代码,我觉得我不应该犯这些错误.

谢谢!

python indexing for-loop list-comprehension pandas

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

PyCharm 认为 int / float 没有实现 __div__ 的那一天

更新 此问题已在 PyCharm 2017.2 中解决

def foo(x):
    return x / (60 * 60)

z = 1
y = 2
bar = 0 if y == 0 else z / y

foo(bar)
Run Code Online (Sandbox Code Playgroud)

这导致 PyCharm 2017.1.4 具有几乎默认的分析器设置(我相信)显示以下警告:

预期类型'{__div__}',而是得到 'Union[int, float]'。

此检查检测函数调用表达式中的类型错误。由于动态调度和鸭子类型,这在有限但有用的情况下是可能的

现在,当然 Python 没有静态类型检查,但很明显,这里bar总是intfloat(并且 PyCharm 将其理解为got Union[int, float]在上述警告中很明显)。

那么,这是 PyCharm 中的一个错误,在这个特定用例中它无法看到intfloat执行__div__,还是我在这里遗漏了其他东西?

更新

奇怪的是,如果foo修改为return x * 60 * 60警告消失,PyCharm 不会警告x不执行__mul__ …

python pycharm

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

Python 3:不带零的打印浮点精度

例如

x = 1.23
print("%.3f" % x)
Run Code Online (Sandbox Code Playgroud)

输出将是“ 1.230”,我想要“ 1.23”。有什么办法吗?谢谢。

编辑:我想要一个函数,将以极限精度打印浮点,并且如果没有达到给定的极限,则不会打印零

floating-point python-3.x

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

lru_cache - 是否可以只清除缓存中的特定调用?

我知道cache_clear。但是我想知道如何清除单个调用的缓存。看到cache_clear不接受一个论点,我认为唯一的方法是直接弄乱底层字典。会产生什么副作用(如果有的话)?

目标是实现以下目标

from functools import lru_cache

@lru_cache()
def f(x):
    print('called with ', x)


f(1)
f.cache_clear(1)  # obviously does not work
f(1)
Run Code Online (Sandbox Code Playgroud)

随着输出

called with  1
called with  1
Run Code Online (Sandbox Code Playgroud)

python

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

导出数据框时使用当前日期作为文件名

我正在使用内置 to_excel 函数的 Pandas 使用我创建的数据框创建 Excel 表。

DataSet.to_excel("July24th.xlsx", sheet_name='sheet1', index=False)
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用当前日期命名我的 Excel 工作表。我希望此代码自动采用日期。我正在尝试按计划运行我的 python 代码。所以每天我运行我的代码,它都会为那天创建一个 excel 表。我想保留生成的所有 excel 表。

我尝试使用这样的东西:

import time
TodaysDate = time.strftime("%d/%m/%Y")
excelfilename = TodaysDate +".xlsx"

DataSet.to_excel(excelfilename, sheet_name='sheet1', index=False).
Run Code Online (Sandbox Code Playgroud)

但是上面给出了一个错误。我还能通过什么其他方式获得这样的输出。

python excel pandas

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

继承 - __hash__在子类中设置为None

我设法在Python 3.4和3.7上重现了这一点.

考虑:

class Comparable:
    def _key(self):
        raise NotImplementedError

    def __hash__(self):
        return hash(self._key())

    def __eq__(self, other):
        ...

    def __lt__(self, other):
        ...


class A(Comparable): pass

class B(A):
    def __str__(self):
        return "d"

    def __eq__(self, other):
        return isinstance(self, type(other))

    def _key(self):
        return str(self),

b = B()
Run Code Online (Sandbox Code Playgroud)

显然,人们期望b.__hash__在这里定义,因为它定义在Comparable哪个B子类下.

瞧,它被定义,但评估为None.是什么赋予了?

>> b
<__main__.B object at 0x00000183C9734978>
>> '__hash__' in dir(b)
True
>> b.__hash__

>> b.__hash__ is None
True
>> B.__mro__
(<class '__main__.B'>, <class '__main__.A'>, <class '__main__.Comparable'>, <class …
Run Code Online (Sandbox Code Playgroud)

python inheritance

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

Python 字典理解将字典和整数的元组列表转换为字典列表

我有字典列表和整数列表

x = [
    {
        "name": "tom",
        "job": "judge"
    },
    {
        "name":"bob",
        "job": "policeman"
    }
]
y = [1000, 2200]
Run Code Online (Sandbox Code Playgroud)

我想压缩它们并将y元素添加到字典中,因为"payroll": y_element 所需的输出将是:

[
    {
        "name": "tom",
        "job": "judge",
        "payroll": 1000
    },
    {
        "name":"bob",
        "job": "policeman",
        "payroll": 2200
    }
]
Run Code Online (Sandbox Code Playgroud)

我实际上是通过以下方式实现的:

z = zip(x, y)
for i in z:
    i[0]["payroll"] = i[1]

z = [i[0] for i in z]
Run Code Online (Sandbox Code Playgroud)

但我想知道是否可以在列表理解中的字典理解中完成。这是我到目前为止所尝试的:

z = [{k: v, "value": o} for d, o in z for k, v in d.items()]
Run Code Online (Sandbox Code Playgroud)

显然这是错误的,因为输出是: …

python list dictionary-comprehension

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

在sqlalchemy查询中使用for循环

所以我想在查询中使用for循环,如果记录的字段等于对象的属性(在对象列表中),则拉取结果我该怎么做?这是我的代码:

you = session.query(Users).filter_by(id=login_session['userid']).first()

friends = session.query(Friends).filter_by(user_id=login_session['userid']).all()

dashboard = session.query(Markers).filter(Markers.owner == f.friend_id for f in friends).all()
Run Code Online (Sandbox Code Playgroud)

但后来我得到了这个:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pearadox6/travellr/app.py", line 423, in feed
    dashboard = session.query(Markers).filter(Markers.owner == f.friend_id for f in friends).all()
  File "<string>", line 1, in <lambda>
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy

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

python中的正则表达式:在双引号之间替换多次出现的逗号

我正在尝试找到一种方法来替换csv文件中使用python在两个双引号之间发生的所有逗号.

鉴于此类输入:

abc,def,"ghi,jkl,mno",pqr,stu

我想得到:

abc,def,"ghi|jkl|mno",pqr,stu

我尝试使用类似于以下内容的正面外观:

(?<=\")(this here should match every comma)(?=\")但我无法让它发挥作用.有任何想法吗?

python regex

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