小编Den*_*aia的帖子

什么是Python中的"命名元组"?

阅读Python 3.1中更改,我发现了一些......意外的:

sys.version_info元组现在是一个命名元组:

我之前从未听说过命名元组,我认为元素可以用数字(如元组和列表)或键(如dicts)索引.我从没想过他们可以两种方式编入索引.

因此,我的问题是:

  • 什么叫元组?
  • 怎么用?
  • 为什么/何时应该使用命名元组而不是普通元组?
  • 为什么/何时应该使用普通元组而不是命名元组?
  • 是否有任何类型的"命名列表"(命名元组的可变版本)?

python tuples namedtuple

843
推荐指数
9
解决办法
32万
查看次数

我应该使用`import os.path`还是`import os`?

根据官方文档,os.path是一个模块.那么,导入它的首选方式是什么?

# Should I always import it explicitly?
import os.path
Run Code Online (Sandbox Code Playgroud)

要么...

# Is importing os enough?
import os
Run Code Online (Sandbox Code Playgroud)

请不要回答" os为我导入作品".我知道,它现在也适用于我(从Python 2.6开始).我想知道的是关于这个问题的任何官方建议.因此,如果您回答此问题,请发布您的推荐信.

python coding-style python-import

132
推荐指数
6
解决办法
10万
查看次数

如何在不重新压缩JPEG的情况下删除EXIF数据?

我想从JPEG文件中删除EXIF信息(包括缩略图,元数据,相机信息......一切!),但我不想重新压缩它,因为重新压缩JPEG会降低质量,并且通常会增加文件大小.

我正在寻找一个Unix/Linux解决方案,如果使用命令行更好.如果可能,使用ImageMagick(转换工具).如果那是不可能的,那么一个小的Python,Perl,PHP(或Linux上的其他通用语言)脚本就可以了.

有一个类似的问题,但与.NET有关.

unix jpeg exif imagemagick

114
推荐指数
5
解决办法
8万
查看次数

enable-background属性到底具有什么作用?

enable-background属性到底是做什么的?

我读了规范,但我仍然不明白.

svg

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

`-fpic`和`-fPIC` gcc参数有什么区别?

我已经阅读了gcc手册页,但我还是不明白之间的差别-fpic-fPIC.有人可以用一种非常简单明了的方式解释它吗?


相关问题:

gcc fpic

89
推荐指数
2
解决办法
3万
查看次数

'log'和'symlog'有什么区别?

matplotlib中,我可以使用pyplot.xscale()或设置轴缩放Axes.set_xscale().这两个函数都接受三种不同的尺度:'linear'| 'log'| 'symlog'.

'log'和之间有什么区别'symlog'?在我做过的简单测试中,它们看起来完全相同.

我知道文档说它们接受不同的参数,但我仍然不明白它们之间的区别.有人可以解释一下吗?如果它有一些示例代码和图形,答案将是最好的!(另外:'symlog'这个名字来自哪里?)

python logarithm matplotlib scale

88
推荐指数
3
解决办法
4万
查看次数

如何将整数钳位到某个范围?

我有以下代码:

new_index = index + offset
if new_index < 0:
    new_index = 0
if new_index >= len(mylist):
    new_index = len(mylist) - 1
return mylist[new_index]
Run Code Online (Sandbox Code Playgroud)

基本上,我计算一个新索引并使用它来从列表中查找一些元素.为了确保索引在列表的边界内,我需要将这两个if语句写成4行.那是相当冗长,有点难看......我敢说,这是非常不科幻的.

还有其他更简单,更紧凑的解决方案吗?(和更多pythonic)

是的,我知道我可以if else在一行中使用,但它不可读:

new_index = 0 if new_index < 0 else len(mylist) - 1 if new_index >= len(mylist) else new_index
Run Code Online (Sandbox Code Playgroud)

我也知道我可以链max()min()在一起.它更紧凑,但我觉得它有点模糊,如果我输错了就更难找到错误.换句话说,我觉得这很简单.

new_index = max(0, min(new_index, len(mylist)-1))
Run Code Online (Sandbox Code Playgroud)

python clamp

81
推荐指数
8
解决办法
8万
查看次数

什么是"代表; nop;" 在x86汇编中意味着什么?它与"暂停"指令相同吗?

  • 什么rep; nop意思?
  • 它和pause指令一样吗?
  • 它是否与rep nop(没有分号)相同?
  • 这个简单的nop指令有什么区别?
  • 它在AMD和英特尔处理器上的表现是否不同?
  • (奖金)这些说明的官方文件在哪里?

这个问题的动机

另一个问题的评论中进行一些讨论后,我意识到我不知道rep; nop;x86(或x86-64)汇编中的含义.而且我也无法在网上找到一个好的解释.

我知道这rep是一个前缀,意味着"重复下一个指令cx时间"(或至少它是,在旧的16位x86汇编中).根据这一维基百科汇总表,似乎rep只能与使用movs,stos,cmps,lods,scas(但也许是对新的处理器去掉这个限制).因此,我认为rep nop(没有分号)将重复nop操作cx时间.

然而,经过进一步搜索,我更加困惑.它似乎rep; noppause 映射到完全相同的操作码,并且pause有一些不同的行为nop.2005年的一些旧邮件说不同的东西:

  • "尽量不要燃烧太多的力量"
  • "它只相当于'nop',仅使用2字节编码."
  • "这对英特尔来说是神奇的.它就像'nop但是让其他HT兄弟跑了'"
  • "这是暂停英特尔和Athlon的快速填充"

有了这些不同的意见,我无法理解正确的含义.

它正在Linux内核中使用(在i386x86_64上)以及此注释:/* REP …

cpu x86 assembly x86-64 machine-code

80
推荐指数
2
解决办法
2万
查看次数

只使用几天时,"datetime.timedelta"和"dateutil.relativedelta.relativedelta"有什么区别?

datetime.timedelta(来自Python的标准库)和dateutil.relativedelta.relativedelta仅使用几天时有什么区别?

据我了解,timedelta只支持天(和周),同时relativedelta增加了对按年,月,周或日定义的时段的支持,以及定义年,月或日的绝对值.(记住,出于这个问题的目的,我不必担心小时,分钟或秒)

考虑到我只能用工作datetime.date对象,只有在按天数来定义时间段感兴趣,有什么之间的区别timedeltarelativedelta?有什么区别吗?

from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

i = -1  # This could have been any integer, positive or negative
someday = date.today()
# Is there any difference between these two lines?
otherday = someday + timedelta(days=i)
otherday = someday + relativedelta(days=i)
Run Code Online (Sandbox Code Playgroud)

python datetime timedelta

73
推荐指数
3
解决办法
5万
查看次数

什么是php函数默认返回?

如果我没有明确地返回任何内容,那么php函数究竟返回了什么?

function foo() {}
Run Code Online (Sandbox Code Playgroud)
  1. 它是什么类型的?

  2. 它有什么价值?

  3. 如何使用===完全测试?

  4. 这是从php4改为php5吗?

  5. 有没有之间的差异function foo() {}function foo() { return; }

(我不是问如何测试它if (foo() !=0) ...)

php variables language-design function

71
推荐指数
2
解决办法
2万
查看次数