Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

6
Python __str__与__unicode__
有没有时,你应该实现一个python约定__str__()对__unicode__()。我已经看到类重写的__unicode__()频率高于,__str__()但似乎不一致。当实施一个相对于另一个更好时,是否有特定的规则?实施这两种方法是否必要/良好做法?


8
字典和默认值
假设connectionDetails是Python字典,那么像这样的重构代码的最佳,最优雅,最“ pythonic”的方法是什么? if "host" in connectionDetails: host = connectionDetails["host"] else: host = someDefaultValue

7
如何从生成器中仅选择一项(在python中)?
我有一个类似下面的生成器函数: def myfunct(): ... yield result 调用此函数的常用方法是: for r in myfunct(): dostuff(r) 我的问题是,有什么方法可以随时从生成器中获取一个元素吗?例如,我想做类似的事情: while True: ... if something: my_element = pick_just_one_element(myfunct()) dostuff(my_element) ...

20
如何打印字典的键?
我想打印一个特定的Python字典键: mydic = {} mydic['key_name'] = 'value_name' 现在,我可以检查是否可以mydic.has_key('key_name'),但是我想做的是打印密钥的名称'key_name'。当然可以使用mydic.items(),但是我不想列出所有键,而只列出一个特定的键。例如,我期望这样的事情(用伪代码): print "the key name is", mydic['key_name'].name_the_key(), "and its value is", mydic['key_name'] 有什么name_the_key()方法可以打印键名? 编辑: 好的,非常感谢你们的反应!:)我意识到我的问题没有很好的表述和琐碎。我只是感到困惑,因为我意识到key_name mydic['key_name']是两个不同的东西,我认为key_name从字典上下文中打印出来是不正确的。但是实际上我可以简单地使用“ key_name”来引用密钥!:)
213 python  dictionary  key 

5
为什么在Python中使用抽象基类?
因为我习惯了Python中鸭子输入的旧方法,所以我无法理解对ABC(抽象基类)的需求。的帮助下是如何使用它们好。 我试图阅读PEP中的基本原理,但它使我感到头疼。如果我正在寻找一个可变序列容器,我会检查__setitem__,或更可能尝试使用它(EAFP)。我还没有真正使用过数字模块,它确实使用了ABC,但这是我必须了解的最接近的数字。 有人可以向我解释理由吗?

15
Python函数重载
我知道Python不支持方法重载,但是我遇到了一个似乎无法用一种很好的Pythonic方法解决的问题。 我正在制作一个角色需要射击各种子弹的游戏,但是如何编写用于创建这些子弹的不同功能?例如,假设我有一个函数,该函数创建一个以给定速度从A点移动到B点的子弹。我会写一个像这样的函数: def add_bullet(sprite, start, headto, speed): ... Code ... 但是我想编写其他创建项目符号的功能,例如: def add_bullet(sprite, start, direction, speed): def add_bullet(sprite, start, headto, spead, acceleration): def add_bullet(sprite, script): # For bullets that are controlled by a script def add_bullet(sprite, curve, speed): # for bullets with curved paths ... And so on ... 以此类推。有没有一种更好的方法可以在不使用太多关键字参数的情况下实现快速更新呢?重命名各功能是非常糟糕的一点,因为你要么add_bullet1,add_bullet2或add_bullet_with_really_long_name。 …


8
逐行迭代时更新熊猫数据框
我有一个看起来像这样的熊猫数据框(非常大) date exer exp ifor mat 1092 2014-03-17 American M 528.205 2014-04-19 1093 2014-03-17 American M 528.205 2014-04-19 1094 2014-03-17 American M 528.205 2014-04-19 1095 2014-03-17 American M 528.205 2014-04-19 1096 2014-03-17 American M 528.205 2014-05-17 现在我想逐行进行迭代,当我遍历每一行时,每行中的值ifor 可以根据某些条件而变化,因此我需要查找另一个数据帧。 现在,如何在迭代时更新它。尝试了几项都不起作用的东西。 for i, row in df.iterrows(): if <something>: row['ifor'] = x else: …

7
初始化dict的首选语法是:大括号文字{}或dict()函数?
我正在努力学习Python,并且一直密切关注通用的编码标准。这似乎是一个毫无意义的挑剔问题,但是我在学习时会尝试着眼于最佳实践,因此我不必学习任何“坏”习惯。 我看到两种初始化字典的常用方法: a = { 'a': 'value', 'another': 'value', } b = dict( a='value', another='value', ) 哪个被认为是“更pythonic的”?您使用哪个?为什么?
212 python  dictionary 


14
如何搜索和替换文件中的文本?
如何使用Python 3搜索和替换文件中的文本? 这是我的代码: import os import sys import fileinput print ("Text to search for:") textToSearch = input( "> " ) print ("Text to replace it with:") textToReplace = input( "> " ) print ("File to perform Search-Replace on:") fileToSearch = input( "> " ) #fileToSearch = 'D:\dummy1.txt' tempFile = open( …


7
如何根据任意条件函数过滤字典?
我有一个要点词典,说: >>> points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)} 我想创建一个新字典,其中所有x和y值均小于5的点,即点“ a”,“ b”和“ d”。 根据这本书,每个字典都有该items()函数,该函数返回一个(key, pair) 元组列表: >>> points.items() [('a', (3, 4)), ('c', (5, 5)), ('b', (1, 2)), ('d', (3, 3))] 所以我写了这个: >>> for item in [i for i in points.items() if i[1][0]<5 and i[1][1]<5]: ... points_small[item[0]]=item[1] ... >>> points_small {'a': (3, 4), 'b': …

5
从pandas数据框转换为html时,如何在html中显示完整(非截断)的数据框信息?
我使用该DataFrame.to_html函数将pandas数据框转换为html输出。当我将其保存到单独的html文件中时,该文件显示截断的输出。 例如,在我的“文字”列中, df.head(1) 将会呈现 这部电影是很棒的努力。 代替 这部电影是在解构这一时期盛行的复杂社会情绪方面做出的出色努力。 在大屏幕熊猫数据框的屏幕友好格式的情况下,这种表示形式很好,但是我需要一个HTML文件,该文件将显示数据框中包含的完整表格数据,即,将显示后一个文本元素而不是前一段文字。 如何在html版本的信息的TEXT列中显示每个元素的完整,不截断的文本数据?我可以想象html表必须显示长单元格才能显示完整的数据,但是据我所知,只能将列宽参数传递给该DataFrame.to_html函数。
212 python  html  pandas 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.