小编use*_*454的帖子

如何获取python列表的第n个元素或默认值(如果不可用)

我正在寻找一个等效的python dictionary.get(key, default)列表.是否有任何一个习惯用语来获取列表的第n个元素或默认值(如果不可用)?

例如,给定一个我希望获得的列表myList myList[0],或者如果myList是一个空列表,则为5 .

谢谢.

python list

128
推荐指数
6
解决办法
24万
查看次数

如何在Python函数中将参数绑定到给定值?

我有许多具有位置和关键字参数组合的函数,我想将它们的一个参数绑定到给定值(仅在函数定义之后才知道).有一般的方法吗?

我的第一次尝试是:

def f(a,b,c): print a,b,c

def _bind(f, a): return lambda b,c: f(a,b,c)

bound_f = bind(f, 1)
Run Code Online (Sandbox Code Playgroud)

但是,为此,我需要知道传递给的确切args f,并且不能使用单个函数来绑定我感兴趣的所有函数(因为它们具有不同的参数列表).

python

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

如何知道optparse选项是在命令行中传递还是作为默认值传递

使用python optparse.py,有没有办法计算出是从命令行还是从默认值设置了特定的选项值.

理想情况下,我希望像默认值一样使用dict,但包含实际从命令行提供的选项

我知道您可以将每个选项的值与默认值进行比较,但这不能区分通过与默认值匹配的命令行传递的值.

谢谢!


编辑

对不起我原来的措辞不是很清楚.

我有大量的脚本从批处理文件中调用.出于审计目的,我想报告正在传递的选项,以及它们是从命令行,默认还是其他方式传递到日志文件.

使用默认值可以判断选项是否与默认值匹配,但仍然不能告诉您它是否实际上是从命令行提供的.这可能是相关的:如果从命令行传递一个选项并且与默认值一致,那么如果然后更改代码中的默认值,脚本仍将获得相同的值.

对我来说,拥有一个等效的默认值是很自然的,包含实际提供的值.

为了使问题具体,在这个例子中:

>>> sys.argv = ['myscript.py','-a','xxx']
>>> import optparse
>>> parser = optparse.OptionParser()
>>> parser.add_option('-a', default = 'xxx')
>>> parser.add_option('-b', default = 'yyy')
Run Code Online (Sandbox Code Playgroud)

我如何知道从命令行传递的选项a.是手动解析命令行的唯一方法吗?

(我知道这是一个相当小的一点,但我认为如果我在optparse上遗漏了什么,那将是值得的)

再次感谢

python optparse

8
推荐指数
2
解决办法
5934
查看次数

python正则表达式,如何提取最长的重叠组

如何提取以相同方式开始的最长组

例如,从给定的字符串中,我想提取 CS 或 CSI 的最长匹配项。

我试过这个“(CS|CSI).*”,它会返回 CS 而不是 CSI,即使 CSI 可用。

如果我执行“(CSI|CS).*”,那么如果匹配,我就会得到 CSI,所以我认为解决方案是始终将重叠组中较短的组放在较长的组之后。

有没有更清晰的方式用 re 来表达这一点?结果取决于您链接组的顺序,不知何故让人感到困惑。

python regex

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

Python ConfigParser:如何计算特定部分中设置的选项(而不是默认值)

我有一个配置文件,我使用标准ConfigParser库中的RawConfigParser读取.我的配置文件有一个[DEFAULT]部分,后跟一个[特定]部分.当我遍历[specific]部分中的选项时,它包含[DEFAULT]下的选项,这就是要发生的事情.

但是,对于报告,我想知道该选项是在[specific]部分还是在[DEFAULT]中设置的.有没有办法用RawConfigParser的界面做到这一点,或者我没有选择,只能手动解析文件?(我已经看了一下,我开始担心最糟糕的......)

例如

[默认]

name = a

姓= b

[部分]

name = b

年龄= 23岁

你怎么知道,使用RawConfigParser接口,是否从[DEFAULT]或section [SECTION]部分加载了选项名称和姓氏?

(我知道[DEFAULT]适用于所有人,但你可能想在内部报告这样的事情,以便通过复杂的配置文件工作)

谢谢!

python configparser

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

标签 统计

python ×5

configparser ×1

list ×1

optparse ×1

regex ×1