我为这个为python编写的函数感到震惊.我观察到,在较低的位置,while它会更改列表中的值,vctor即使该功能未触及该列表.我已经通过这对(10, [1,3,5,7,10]),它已将列表更改vctor为[1,3,5,8,10].对此有解释吗?
def siguiente(k,vctor):
l = len(vctor)
vctorsig = vctor
i = l-1
while i>= 0:
if vctorsig[i] <= k - l + i:
j=i
while j<=l-1:
print vctor
vctorsig[j] = vctor[i]+j-i+1
j=j+1
i = -1
else:
i = i-1
return vctorsig
Run Code Online (Sandbox Code Playgroud) 我想知道你是否可以帮我加速我的python脚本.
我有两个清单:
a=['a','b','c','d','e','f','g','h','i','j']
b=['b','f','g','j']
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含b元素的列表,但是它的长度为a,而不是b中的元素被其他东西替换,比方说'-999'.此外,我不想使用b中的元素索引替换实际元素(a,b,c ...).所以看起来像这样:
c=['-999',0,'-999','-999','-999', 1, 2,'-999','-999',3]
Run Code Online (Sandbox Code Playgroud)
我现在的代码是:
c=[]
counter=0
for each in a:
if each in b:
c.append(counter)
counter+=1
else:
c.append('-999')
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是,在现实生活中,我的列表a长度为600 000个元素,实际上有7个b列表需要迭代它们,所有这些都在3k到250k之间.
关于如何提高速度的任何想法?
我有一个数据结构(从YAML文档创建),如下所示:
{
'SD_TX_EN_CFG[5]': {'Bits': {0: 'ENTX // 0 = Disabled, 1 = Enabled'}, 'Name': 'TX Enable Register (Link 5)', 'Offset': 43024},
'SD_TX_EN_CFG[4]': {'Bits': {0: 'ENTX // 0 = Disabled, 1 = Enabled'}, 'Name': 'TX Enable Register (Link 4)', 'Offset': 40976},
'SD_RX_EN_CFG[5]': {'Bits': {0: 'ENRX // 0 = Disabled, 1 = Enabled'}, 'Name': 'RX Enable Register (Link 5)', 'Offset': 43008},
'SD_RX_EN_CFG[3]': {'Bits': {0: 'ENRX // 0 = Disabled, 1 = Enabled'}, 'Name': 'RX Enable Register (Link 3)', 'Offset': 38912},
'SD_RX_EN_CFG[2]': {'Bits': …Run Code Online (Sandbox Code Playgroud) 如何根据键值过滤python中的嵌套字典:
d = {'data': {'country': 'US', 'city': 'New York', 'state': None},
'tags': ['US', 'New York'],
'type': 'country_info',
'growth_rate': None
}
Run Code Online (Sandbox Code Playgroud)
我想过滤这个字典以消除NoneType值,因此产生的字典应该是:
d = {'data': {'country': 'US', 'city': 'New York'},
'tags': ['US', 'New York'],
'type': 'country_info',
}
Run Code Online (Sandbox Code Playgroud)
此外,dict可以有多个嵌套级别.我想从dict中删除所有NoneType值.
假设我有一个Python类:
class Foo(object):
a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)
当我访问'a'但不是'b'时,我想做一些额外的事情.所以,例如,让我们假设我想要做的额外事情是增加属性的值:
> f = Foo()
> f.a # Should output 2
> f.a # Should output 3
> f.a # Should output 4
> f.b # Should output 2, since I want the extra behavior just on 'a'
Run Code Online (Sandbox Code Playgroud)
感觉有一种方法可以通过__getattr__或__getattribute__,但我无法理解这一点.
额外的东西可以是任何东西,不一定与属性相关(如打印'Hello world').
谢谢.
蟒蛇 2.7.3
>>> print '%2.2f' % 0.1
0.10
Run Code Online (Sandbox Code Playgroud)
我的文档说类型 % 应该与类型 f 相同,只是输入乘以 100。
>>> print '%2.2%' % 0.1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud) 如果我有一个带有键a0,a1,a2,b1,b2,b3的字典,我只想随机弹出两个带有以'a'开头而不是'b'的键,如何修改下面的代码?
for key in random.sample(d.keys(), n):
del d[key] # or d.pop(key)
Run Code Online (Sandbox Code Playgroud) 我是Python的新手,试图通过基于"Dive into Python"一书的教程来学习它.我已经在关于SOAP的章节中,当我尝试安装所有必需的库来使用SOAP时,我遇到了一些问题.教程说我需要3个库:
PyXML,fpconst,SOAPpy
我成功安装了fpconst.但是我不能安装另外两个.我在一些论坛上读到要安装SOAPpy我需要安装PyXML,所以问题可能只在第一个库中.
我按照README中的说明操作,但是我遇到了一些错误,我真的不知道出了什么问题,怎么解决它.有关详情,请参见屏幕 我的Python版本是2.7.2+,我正在尝试安装PyXML版本0.8.4.
错误表明此类文件或目录不存在.我正在使用Ubuntu 11.10.
PS:啊!我忘了提到那个.我从这个来源下载了PyXML:
http://sourceforge.net/projects/pyxml/
它写在这里它已经过时了,不应该使用它.那么什么是PyXML的替代品呢?
python ×8
dictionary ×3
python-2.7 ×2
iteration ×1
performance ×1
pyxml ×1
pyyaml ×1
random ×1
soappy ×1
sorting ×1