另一位开发人员和我不同意是否应该使用PYTHONPATH或sys.path来允许Python在用户(例如,开发)目录中查找Python包.
我们有一个具有典型目录结构的Python项目:
Project
setup.py
package
__init__.py
lib.py
script.py
Run Code Online (Sandbox Code Playgroud)
在script.py中,我们需要这样做import package.lib.当软件包安装在site-packages中时,script.py可以找到package.lib.
但是,当从用户目录工作时,还需要做其他事情.我的解决方案是将我的PYTHONPATH设置为包含"〜/ Project".另一位开发人员希望将这行代码放在script.py的开头:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Run Code Online (Sandbox Code Playgroud)
这样Python就可以找到本地副本了package.lib.
我认为这是一个坏主意,因为这行只对开发人员或从本地副本运行的人有用,但我不能说明为什么这是一个坏主意.
我们应该使用PYTOHNPATH,sys.path,还是要么?
假设我想拥有10行数据,但我想为每行或每段数据增加一个值.如何增加该值?
例如....如果我有这些行,是否有一种正则表达式替换id值来增加?
<row id="1" />
<row id="1" />
<row id="1" />
<row id="1" />
<row id="1" />
Run Code Online (Sandbox Code Playgroud)
---这就是我希望它看起来像......(如果第一行的id上升一个就好了)
<row id="1" />
<row id="2" />
<row id="3" />
<row id="4" />
<row id="5" />
Run Code Online (Sandbox Code Playgroud) 我想在YAML中合并数组,并通过ruby加载它们 -
some_stuff: &some_stuff
- a
- b
- c
combined_stuff:
<<: *some_stuff
- d
- e
- f
Run Code Online (Sandbox Code Playgroud)
我想将组合数组作为 [a,b,c,d,e,f]
我收到错误:在解析块映射时没有找到预期的键
如何在YAML中合并数组?
我使用python 2.7.3的日志工具.这个Python版本的文档说:
日志包提前更新格式化选项,如str.format()和string.Template.支持这些较新的格式化选项...
我喜欢花括号的"新"格式.所以我想尝试做类似的事情:
log = logging.getLogger("some.logger")
log.debug("format this message {0}", 1)
Run Code Online (Sandbox Code Playgroud)
并得到错误:
TypeError:并非在字符串格式化期间转换所有参数
我想念的是什么?
PS我不想用
log.debug("format this message {0}".format(1))
Run Code Online (Sandbox Code Playgroud)
因为在这种情况下,无论记录器级别如何,都始终格式化消息.
YAML文件中的变量是否可能?例如:
theme:
name: default
css_path: compiled/themes/$theme.name
layout_path: themes/$theme.name
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如何theme: name: default在其他设置中使用?语法是什么?
我试图在yaml中存储一些配置变量,表示为关联数组,也就是字典.我是这样做的:
content_prices:
- {country: AU, price: 6990000}
- {country: AT, price: 4990000}
- {country: BE, price: 4990000}
Run Code Online (Sandbox Code Playgroud)
当我尝试从我的ROR init文件解析它时会产生异常:
undefined方法`symbolize_keys!' 为零:NilClass
以下是我如何创建它:
Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys!
Run Code Online (Sandbox Code Playgroud)
我猜我的yaml语法错了,那怎么写得好呢?
我有一个看起来像这样的数组:
array(
'abc' => 0,
'foo-bcd' => 1,
'foo-def' => 1,
'foo-xyz' => 0,
// ...
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到开头的元素foo-?
Python具有语法上的甜蜜列表理解:
S = [x**2 for x in range(10)]
print S;
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Run Code Online (Sandbox Code Playgroud)
在PHP中我需要做一些循环:
$output = array();
$Nums = range(0,9);
foreach ($Nums as $num)
{
$out[] = $num*=$num;
}
print_r($out);
Run Code Online (Sandbox Code Playgroud)
要得到:
数组([0] => 0 [1] => 1 [2] => 4 [3] => 9 [4] => 16 [5] => 25 [6] => 36 [7] => 49 [8] => 64 [9] => 81)
反正有没有在PHP中获得类似的列表理解语法?无论如何使用PHP 5.3中的任何新功能吗?
谢谢!
php arrays language-comparisons list-comprehension higher-order-functions
投影和选择有什么区别?是吗:
那么投影和选择分别是垂直和水平切片?
a=['123','2',4]
b=a[4] or 'sss'
print b
Run Code Online (Sandbox Code Playgroud)
我想在列表索引超出范围时获取默认值(此处为:) 'sss'.
我怎样才能做到这一点?
python ×3
yaml ×3
arrays ×2
list ×2
php ×2
array-filter ×1
database ×1
dictionary ×1
notepad++ ×1
python-2.7 ×1
pythonpath ×1
regex ×1
ruby ×1
sequential ×1
sql ×1
syntax ×1
sys.path ×1
variables ×1