草庐IT

字典序法

全部标签

python - 查询 Python 字典以从元组中获取值

假设我有一个Python字典,但值是一个元组:例如dict={"Key1":(ValX1,ValY1,ValZ1),"Key2":(ValX2,ValY2,ValZ2),...,"Key99":(ValX99,ValY99,ValY99)}我只想从元组中检索第三个值,例如。上例中的ValZ1、ValZ2或ValZ99。我可以使用.iteritems()这样做,例如:forkey,valindict.iteritems():ValZ=val[2]但是,有没有更直接的方法呢?理想情况下,我想按键查询字典并只返回元组中的第三个值...例如dict[Key1]=ValZ1而不是我目前得到的di

python - 在字典 switch 语句中模拟 'else'

我正在开发一个项目,该项目使用了大量If、Elif、Elif、...Else结构,后来我将其更改为类似switch的语句,如图所示here和here.我将如何在If,Elif,Else语句中添加类似于Else的通用“嘿,该选项不存在”情况-如果没有如果或Elif开始运行? 最佳答案 如果else真的不是特殊情况,get使用可选参数不是更好吗?>>>choices={1:'one',2:'two'}>>>printchoices.get(n,'toobig!')>>>n=1>>>printchoices.get(n,'toobig!'

python - 如何有效地计算两个字典的内积

假设我使用字典表示一个特征向量(为什么?因为我知道这些特征是稀疏的,但稍后会详细介绍)。我应该如何实现两个这样的字典(表示为A、B)的内积我尝试了天真的方法:forkinA:ifkinB:sum+=A[k]*B[k]但事实证明它很慢。更多细节:我使用字典来表示特征是因为特征键是字符串大约有20K种可能的键每个向量都是稀疏的(例如,大约1000个非零元素)。我对计算N=2000个不同词典(即它们的线性内核)的成对内积非常感兴趣。 最佳答案 不确定是否更快,但这是另一种方法:keys=A.viewkeys()&B.viewkeys()t

python - 从字典列表中获取平均值

我有字典列表。说吧total=[{"date":"2014-03-01","value":200},{"date":"2014-03-02","value":100}{"date":"2014-03-03","value":400}]我需要从中获取最大值、最小值和平均值。我可以使用以下代码获取最大值和最小值:printmin(d['value']fordintotal)printmax(d['value']fordintotal)但现在我需要从中获取平均值。怎么做? 最佳答案 只需将值的总和除以列表的长度:printsum(d['v

python - 创建一个程序,如果按字典顺序输入三个单词则打印 true

我正在尝试创建一个程序,要求用户输入三个单词并在单词按字典顺序输入时打印“True”。例如:Enterfirstword:chickenEntersecondword:fishEnterthirdword:zebraTrue到目前为止,这是我的代码:first=(input('Enterfirstword:'))second=(input('Entersecondword:'))third=(input('Enterthirdword:'))s=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r

列表字典中项目的 Python 计数

我有一个列表字典,我想为其添加一个值到特定列表...我有以下列表字典。d={'a':[4,'Adam',2],'b':[3,'John',4],'c':[4,'Adam',3],'d':[4,'Bill'3],'e':[4,'Bob'],'f':[4,'Joe'],'g':[4,'Bill']}我想基本上计算出名字的数量并返回。所以在这种情况下它会像Adam:2Bill:2John:1Bob:1Joe:1为了使事情更简单,所有名称都是列表中的第二个元素或foriind:d[i][1]知道如何有效地做到这一点吗?我目前只是手动检查每个名称并计算并返回=/提前致谢!

python - 是否可以将列表转换为键的嵌套字典*而无需*递归?

假设我有一个列表如下:mylist=['a','b','c','d']是否可以根据这个列表不使用递归/递归函数创建以下字典?{'a':{'b':{'c':{'d':{}}}}} 最佳答案 对于简单的情况,只需从末尾或开始进行迭代和构建:result={}fornameinreversed(mylist):result={name:result}或result=current={}fornameinmylist:current[name]={}current=current[name]第一个解决方案也可以使用reduce()表示为单行

以变​​量为键的 Python 字典

我是一名Python新手,正在尝试解析文件以制作内存分配表。我的输入文件采用以下格式:48bytesallocatedat0x8bb970a024bytesallocatedat0x8bb950c048bytesallocatedat0x958bd0e048bytesallocatedat0x8bb9b06096bytesallocatedat0x8bb9afe024bytesallocatedat0x8bb9af60我的第一个目标是创建一个表来计算特定数量的字节分配的实例。换句话说,我对上述输入的期望输出类似于:48bytes->3times96bytes->1times24byte

python - 将字典列表转换为字典字典的优雅方法

我有一个像这个例子中的字典列表:listofdict=[{'name':'Foo','two':'Baz','one':'Bar'},{'name':'FooFoo','two':'BazBaz','one':'BarBar'}]我知道每个字典(以及其他键)中都存在“名称”,并且它是唯一的,不会出现在列表中的任何其他字典中。我想要一种使用键“name”来访问“two”和“one”的值的好方法。我想字典的字典会最方便吗?喜欢:{'Foo':{'two':'Baz','one':'Bar'},'FooFoo':{'two':'BazBaz','one':'BarBar'}}有了这个结构,我

python - 如何将此列表转换为 Python 中的字典?

我有一个这样的列表:paths=[['test_data','new_directory','ok.txt'],['test_data','reads_1.fq'],['test_data','test_ref.fa']]我想像这样把它转换成字典:{'test_data':['ok.txt','reads_1.fq'],'test_data/new_directory',['ok.txt']}列表是动态的。这样做的目的是创建一个简单的树结构。我想像这样使用itertools来做到这一点:fromitertoolsimportizipi=iter(a)b=dict(izip(i,i))这