我有一个SQL数据库,我想知道你用什么命令来获取该数据库中的表名列表.
编写我的Python 2.6代码,但考虑到Python 3,我认为这是一个好主意
from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)
在一些模块的顶部.换句话说,我要求麻烦(将来要避免它们),但我可能会遗漏一些重要的知识.我希望能够传递表示文件路径的字符串并实例化一个简单的对象
MyObject('H:\unittests')
在Python 2.6中,这很好用,不需要使用双反斜杠或原始字符串,即使对于以...开头的目录'\u..'
,这正是我想要的.在__init__
方法我要确保所有的单\
OCCURENCES被解释为" \\
",包括那些之前的特殊字符,如\a
,\b
,\f
,\n
,\r
,\t
和\v
(只\x
仍然是一个问题).还使用(本地)编码将给定字符串解码为unicode按预期工作.
准备Python 3.x,在编辑器中模拟我的实际问题(从Python 2.6中的干净控制台开始),会发生以下情况:
>>> '\u'
'\\u'
>>> r'\u'
'\\u'
Run Code Online (Sandbox Code Playgroud)
(好到这里:'\u'
由控制台使用本地编码进行编码)
>>> from __future__ import unicode_literals
>>> '\u'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: end of string in escape sequence
Run Code Online (Sandbox Code Playgroud)
换句话说,(unicode)字符串根本不被解释为unicode,也不会使用本地编码自动解码.对于原始字符串也是如此:
>>> r'\u'
SyntaxError: (unicode …
Run Code Online (Sandbox Code Playgroud) 假设我有这段代码:
my_dict = {}
default_value = {'surname': '', 'age': 0}
# get info about john, or a default dict
item = my_dict.get('john', default_value)
# edit the data
item[surname] = 'smith'
item[age] = 68
my_dict['john'] = item
Run Code Online (Sandbox Code Playgroud)
如果我们现在检查default_value的值,问题就变得清晰了:
>>> default_value
{'age': 68, 'surname': 'smith'}
Run Code Online (Sandbox Code Playgroud)
很明显,它my_dict.get()
没有返回default_value 的值,而是返回指针(?).
可以通过将代码更改为:
item = my_dict.get('john', {'surname': '', 'age': 0})
Run Code Online (Sandbox Code Playgroud)
但这似乎不是一个很好的方法.有什么想法,评论?
import numpy as np
a = np.zeros((3,2))
ind_row = np.array([0,1])
a[ind_row, 1]=3
Run Code Online (Sandbox Code Playgroud)
现在,a
正如所料:
[[ 0. 3.]
[ 0. 3.]
[ 0. 0.]]
Run Code Online (Sandbox Code Playgroud)
我想为一个子数组赋值a[ind_row, 1]
,并期望能够如下所示:
a[ind_row, 1][1] = 5
Run Code Online (Sandbox Code Playgroud)
但是,这a
保持不变!我为什么要这么想?
python ×4
arrays ×1
dictionary ×1
future-proof ×1
mysql ×1
mysql-python ×1
numpy ×1
unicode ×1