我在这里有这个尾递归函数:
def recursiveFunction(n, sum):
if n < 1:
return sum
else:
return recursiveFunction(n-1, sum+n)
c = 998
print(recursiveFunction(c, 0))
Run Code Online (Sandbox Code Playgroud)
它可以工作到n = 997,然后它就会中断并吐出"比较时超出的最大递归深度" RuntimeError.这只是一个堆栈溢出?有办法解决它吗?
出于优化目的,我试图减少总场数.然而,在我要做之前,我想知道我实际拥有多少个字段._stats端点中似乎没有任何信息,我无法弄清楚迁移工具如何进行其字段计数计算.
是否有某种方法,无论是使用端点还是通过其他方式,来获取指定索引的总字段数?
从yaml配置我得到一个python字典,如下所示:
conf = {
'cc0': {
'subselect':
{'roi_spectra': [0], 'roi_x_pixel_spec': 'slice(400, 1200)'},
'spec':
{'subselect': {'x_property': 'wavenumber'}},
'trace':
{'subselect': {'something': 'jaja', 'roi_spectra': [1, 2]}}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,关键字"subselect"对于所有子级别都是通用的,其值始终是dict,但它的存在是可选的.嵌套量可能会改变.我正在寻找一个功能,允许我执行以下操作:
# desired function that uses recursion I belive.
collect_config(conf, 'trace', 'subselect')
Run Code Online (Sandbox Code Playgroud)
其中'trace'是dicts字典的关键,可能是'subselect'字典作为值.
它应该回来
{'subselect':{
'something': 'jaja',
'roi_spectra': [1, 2],
'roi_x_pixel_spec':
'slice(400, 1200)'
}
Run Code Online (Sandbox Code Playgroud)
或者如果我要求
collect_config(conf, "spec", "subselect")
Run Code Online (Sandbox Code Playgroud)
它应该回来
{'subselect':{
'roi_spectra': [0],
'roi_x_pixel_spec':
'slice(400, 1200)',
'x_property': 'wavenumber'
}
Run Code Online (Sandbox Code Playgroud)
我基本上想要的是一种方法,将键的值从顶层传递到较低层,并使较低层覆盖顶层值. 很像类的继承,但有字典.
所以我需要一个横跨dict的函数,找到一个到达所需键的路径(这里是"trace"或"spec"并用更高级别的值填充它的值(这里是"subselect"),但只有更高的值级别值不存在.
我目前有一种看起来如下的实现.
# This traverses the dict and gives me the path to …Run Code Online (Sandbox Code Playgroud) 我有一些像这样的Python词典:
A = {id: {idnumber: condition},....
Run Code Online (Sandbox Code Playgroud)
例如
A = {1: {11 : 567.54}, 2: {14 : 123.13}, .....
Run Code Online (Sandbox Code Playgroud)
我需要搜索字典中是否有任何字典idnumber == 11并使用condition.但如果在整个字典中没有idnumber == 11,我需要继续下一个字典.
这是我的尝试:
for id, idnumber in A.iteritems():
if 11 in idnumber.keys():
calculate = ......
else:
break
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 spacy NER 从组织地址中提取国家/地区,但是,它使用相同的标签标记国家和城市GPE。有什么办法可以区分它们吗?
例如:
nlp = en_core_web_sm.load()
doc= nlp('Resilience Engineering Institute, Tempe, AZ, United States; Naval Postgraduate School, Department of Operations Research, Monterey, CA, United States; Arizona State University, School of Sustainable Engineering and the Built Environment, Tempe, AZ, United States; Arizona State University, School for the Future of Innovation in Society, Tempe, AZ, United States')
for ent in doc.ents:
if ent.label_ == 'GPE':
print(ent.text)
Run Code Online (Sandbox Code Playgroud)
回馈
Tempe
AZ
United States
United States
Tempe
AZ
United States
Tempe …Run Code Online (Sandbox Code Playgroud) 我在Python中有一个JSON对象,表示为嵌套的字典列表.(字典的某些值本身就是字典,依此类推.)
我希望能够在这个嵌套字典结构的所有分支上搜索一个键.
当我找到密钥时,我希望能够返回通向它的完整密钥路径.
例如:我正在寻找具有"特殊地址密钥"的"特殊代理",但并非所有特殊代理都拥有它,以及那些在其JSON中的不一致路径中拥有它的人.
所以我搜索关键Special Address code.结果应该返回:
/'People'/'SpecialAgents'/'007'/'Special Address code'/
Run Code Online (Sandbox Code Playgroud)
所以我将能够以这种方式获得其信息:
json_obj['People']['SpecialAgents']['007']['Special Address code']
Run Code Online (Sandbox Code Playgroud)
请注意,这与此问题类似,但我需要找到所有密钥实例的完整路径.
我有点困惑如何从Python中的有序列表的嵌套列表中提取信息.例如:
list_of_interest = [OrderedDict([('name', 'Viscozyme'), ('company', 'Roche (Chile)')]),
[OrderedDict([('name', 'Davictrel'), ('company', None)]),
OrderedDict([('name', 'Enbrel Sureclick'), ('company', None)]),
OrderedDict([('name', 'Tunex'), ('company', None)])],
OrderedDict([('name', 'Angiox'), ('company', None)]),
[OrderedDict([('name', 'Enantone'), ('company', None)]),
OrderedDict([('name', 'Leuplin'), ('company', 'Takeda')]),
OrderedDict([('name', 'LeuProMaxx'), ('company', 'Baxter/Teva')]),
OrderedDict([('name', 'Leupromer'), ('company', None)]),
OrderedDict([('name', 'Lutrate'), ('company', None)]),
OrderedDict([('name', 'Memryte'), ('company', 'Curaxis')]),
OrderedDict([('name', 'Prostap 3'), ('company', 'Takeda UK')]),
OrderedDict([('name', 'Prostap SR'), ('company', 'Takeda UK')]),
OrderedDict([('name', 'Viadur'), ('company', 'Bayer AG')])],
OrderedDict([('name', 'Geref'), ('company', 'Serono Pharma')])]
Run Code Online (Sandbox Code Playgroud)
我需要提取所有项目'name'.
所以我需要一个功能:
get_names(list_of_interest) --> ['Viscozyme', 'Davictrel', 'Enbrel …Run Code Online (Sandbox Code Playgroud)