我有一个字符串列表(来自.tt文件),如下所示:
list1 = ['have\tVERB', 'and\tCONJ', ..., 'tree\tNOUN', 'go\tVERB']
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个看起来像的字典:
dict1 = { 'have':'VERB', 'and':'CONJ', 'tree':'NOUN', 'go':'VERB' }
Run Code Online (Sandbox Code Playgroud)
我在考虑替代,但它效果不好.有没有办法将标签字符串标记'\t'为分隔符?
来自Python书籍:
学习Python。第五版,第 #727 页
我读了以下内容:
如果Python在搜索路径上只找到一个字节码文件并且没有找到源代码,那么它只是直接加载字节码;这意味着您可以将程序仅作为字节代码文件发送,并避免发送源代码
但是当在 Python 3.5 上尝试相同的操作时,它不起作用:
~/Python/Module_Test$ cat a.py
a = "abc"
l = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
导入模块'a'创建的字节码文件如下:
~/Python/Module_Test/__pycache__$ ls
a.cpython-35.pyc
Run Code Online (Sandbox Code Playgroud)
现在我删除了该'a.py'文件并从字节码目录中导入了该模块'a':
~/Python/Module_Test/__pycache__$ python
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'a'
Run Code Online (Sandbox Code Playgroud)
我什至尝试将字节码目录添加到搜索路径,但仍然无法加载模块:
>>> …Run Code Online (Sandbox Code Playgroud) 让我们举个例子:
def fun(**args):
print(str(args))
dic = {'name': 'Pulkit'}
fun(**dic)
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,我有以下输出:
{'name': 'Pulkit'}
Run Code Online (Sandbox Code Playgroud)
现在让我们将值作为字节传递:
dic_vb = {'name': b'Pulkit'}
fun(**dic_vb)
Run Code Online (Sandbox Code Playgroud)
这也很好,并具有以下输出:
{'name': b'Pulkit'}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将密钥作为字节时,事情会发生变化:
dic_kb = {b'name': 'Pulkit'}
Run Code Online (Sandbox Code Playgroud)
这导致TypeError说:
TypeError: fun() keywords must be strings
Run Code Online (Sandbox Code Playgroud)
有没有办法我们可以传递字节作为关键字参数.我还在repo检查了CPython代码,它处理关键字参数,似乎我们无法通过.是否有任何解决方法或我需要确保传递unicodes.
我正在处理一个代码库,我们在Python 2上有很多这样的实例,需要移植到Python 3.所以唯一可能的方法是将所有关键字参数转换为unicodes?
deconstructiblePython 中的装饰器有什么作用?我遇到了这个装饰器,正在查看其他人的代码,但是我搜索了Python文档,却找不到该装饰器的实际功能?
@deconstructible
class UserValidator(object):
def __call__(self, value):
if value:
etc
Run Code Online (Sandbox Code Playgroud)
给定上面的代码,对此类添加'deconstructible'有什么作用?
因为dict.keys(和dict.items和dict.values一样)返回字典对象的看法,我会认为他们删除从实际制作的字典对一个影响dict_keys我们从得到了他们.
使用简单的字典及其键:
d = {i:i for i in range(20)}
k = d.keys() # similarly with d.values and d.items
Run Code Online (Sandbox Code Playgroud)
显然,事实并非如此:
del d
i = iter(k)
list(i) # works fine and prints the keys
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样?
我想定义一个resize(h, w)方法,并且我希望能够以两种方式之一调用它:
resize(x,y)resize(x)在第二次调用中,我希望y等于x. 我可以在方法定义中执行此操作,还是应该执行类似操作resize(x,y=None)并在内部进行检查:
if y is None:
y = x
Run Code Online (Sandbox Code Playgroud) 为什么有些构造类似int(),list(),set()和许多其他用小写字母而不是大写字母开头的?如果不这样写Int(),List(),Set()等?
我有一个Foo类变量的类remote.我可以remote使用self.remote?访问类变量吗?
class Foo:
remote = False
def __init__(self):
self.remote = True
@classmethod
def print_remote(cls):
print(cls.remote) #prints False but why?
Run Code Online (Sandbox Code Playgroud) 我开始编写一个程序进行非线性光束计算.我之所以选择Python,是因为它的Matlab就像代码一样,我正在进行速度测试(确保python是正确的语言来进行快速数值计算)并尝试熟悉python3.我尝试了一种算法,计算从t = 1到n的1/t ^ 2之和(来自书Julia High Perfromance),以比较python3与julia的速度.现在我有一些问题:
1)在我的计算中,朱莉娅没有预期的那么快?Julia ist JIT编译.它应该非常快.为什么python更快?
2)为什么python中的循环如此缓慢?
3)为什么python sum方法比numpy.sum方法慢
4)为什么python geting的sum函数与numpy.sum函数的解决方案略有不同?
我希望你能帮助我.
代码:
# Benchmark Python vs Julia
# (from Julia High Performance page 7 from Avik Sengupta)
import scipy as sp
import time
# Sum of 1/t^2 from t = 1 to n by using loops:
# --------------------------------------------
def pisum(w,n):
u_sum = 0
for vi in range(w):
u_sum = 0
for vj in range(1,n+1,1):
u_sum += 1.0/(vj*vj)
return u_sum
# Sum of 1/t^2 from t …Run Code Online (Sandbox Code Playgroud) 我需要创建一个列表,它返回另一个列表的第n和第n + 1值之间的差异.有没有办法简化下面的代码以适用于任何大小的列表?
mylist = [1,5,15,30,60]
w = mylist[1] - mylist[0]
x = mylist[2] - mylist[1]
y = mylist[3] - mylist[2]
z = mylist[4] - mylist[3]
difflist = [w,x,y,z]
print difflist
Run Code Online (Sandbox Code Playgroud)
这将回归 [4,10,15,30]
python ×10
python-3.x ×8
dictionary ×2
list ×2
class ×1
django ×1
function ×1
julia ×1
performance ×1
python-2.7 ×1