如何查找字典值的位置

你好,
我有一个字典,如下:
kev:{'phno':['dgsd','gsdg','dfsdf','g'],'email':['dg',
'sgsd','sdfsdf','gdf'],'名称':['ds','dsg','dsfds','dsfds','fgdf'],
'地址':['sdg','dsgsdg','sdf','dfg']}}
如果用户进入密钥phno的第三项,即我的dict中的" dfsdf"
我如何找到它是内部phno内部列表中的第三个项目
那个词典?感谢您.

# 回答1


lookfor ='dfsdf'
对于项目,kev.items()中的值:
如果有价值看:
打印项目
print value.index(lookfor)
休息#假设您只想要一个结果
您也可以跳过" if"验证,在这种情况下您需要捕获
ValueError异常如果当前列表中没有此类条目.
希望能帮助到你.
李写道:
# 回答2


在9月1日,下午1:21,Alexandru Palade
嗨,谢谢你,您的解决方案完全是我想要的:)
# 回答3


Lee aécrit:
这很简单(提示:读取dict.items()和
list.index()),但1/完全效率低下,2/不garanteed产生
单个值(如果'dfsdf'恰好也是该怎么办
列表绑定到密钥"地址"?).
我可以建议您重新考虑数据结构吗?你有什么
这显然是'phno/email/name/dordect'Records的集合.
这些记录不应跨不同对象分开.假设
" phno"是每个记录的唯一标识符,一个更好的数据结构
将会:
记录= {
'dgsd':{'email':'dg','name':'ds','adverse':'dg'},
'gsdg':{'email':'sgsd','name':'ds','adverse':'dsgsdg'},
# ETC
}
这样,查找尽可能简单有效.
我的2美分....
# 回答4


在9月1日,下午1:45,布鲁诺·戴斯图里尔(Bruno Desthuilliers)<布鲁诺(Bruno).
42.desthuilli ...@werfeburburo.invalidwrote:
这很简单(提示:读取dict.items()和
list.index()),但1/完全效率低下,2/不garanteed产生
单个值(如果'dfsdf'恰好也是该怎么办
列表绑定到密钥"地址"?).
我可以建议您重新考虑数据结构吗?你有什么
这显然是'phno/email/name/dordect'Records的集合.
这些记录不应跨不同对象分开.假设
" phno"是每个记录的唯一标识符,一个更好的数据结构
将会:
记录= {
'dgsd':{'email':'dg','name':'ds','adverse':'dg'},
'gsdg':{'email':'sgsd','name':'ds','adverse':'dsgsdg'},
# ETC
}
这样,查找尽可能简单有效.
我的2美分...
你好,
我同意你的看法,我的数据强烈效率不高.但是所有的
记录,即...名称,phno,电子邮件,地址都是在运行时生成的,
当用户进入它们时.因此,我该如何设计我的数据架构
那个情况?
# 回答5


在9月1日,下午1:45,布鲁诺·戴斯图里尔(Bruno Desthuilliers)<布鲁诺(Bruno).
42.desthuilli ...@werfeburburo.invalidwrote:
这很简单(提示:读取dict.items()和
list.index()),但是1/to 效率低下和2/不加倍以产生
单个值(如果'dfsdf'恰好也是该怎么办
列表绑定到密钥"地址"?).
我可以建议您重新考虑数据结构吗?你有什么
这显然是'phno/email/name/dordect'Records的集合.
这些记录不应跨不同对象分开.假设
" phno"是每个记录的唯一标识符,一个更好的数据结构
将会:
记录= {
'dgsd':{'email':'dg','name':'ds','adverse':'dg'},
'gsdg':{'email':'sgsd','name':'ds','adverse':'dsgsdg'},
# ETC
}
这样,查找尽可能简单有效.
我的2美分...
你好,
我同意你的看法,我的数据强烈效率不高.但是所有的
记录,即...名称,phno,电子邮件,地址都是在运行时生成的,
当用户进入它们时.因此,我该如何设计我的数据架构
那个情况?
# 回答6


在9月1日,下午1:45,布鲁诺·戴斯图里尔(Bruno Desthuilliers)<布鲁诺(Bruno).
42.desthuilli ...@werfeburburo.invalidwrote:
这很简单(提示:读取dict.items()和
list.index()),但1/完全效率低下,2/不garanteed产生
单个值(如果'dfsdf'恰好也是该怎么办
列表绑定到密钥"地址"?).
我可以建议您重新考虑数据结构吗?你有什么
这显然是'phno/email/name/dordect'Records的集合.
这些记录不应跨不同对象分开.假设
" phno"是每个记录的唯一标识符,一个更好的数据结构
将会:
记录= {
'dgsd':{'email':'dg','name':'ds','adverse':'dg'},
'gsdg':{'email':'sgsd','name':'ds','adverse':'dsgsdg'},
# ETC
}
这样,查找尽可能简单有效.
我的2美分...
你好,
我同意你的看法,我的数据强烈效率不高.但是所有的
记录,即...名称,phno,电子邮件,地址都是在运行时生成的,
当用户进入它们时.因此,我该如何设计我的数据架构
那个情况?
# 回答7


在9月1日,下午1:45,布鲁诺·戴斯图里尔(Bruno Desthuilliers)<布鲁诺(Bruno).
42.desthuilli ...@werfeburburo.invalidwrote:
这很简单(提示:读取dict.items()和
list.index()),但1/完全效率低下,2/不garanteed产生
单个值(如果'dfsdf'恰好也是该怎么办
列表绑定到密钥"地址"?).
我可以建议您重新考虑数据结构吗?你有什么
这显然是'phno/email/name/dordect'Records的集合.
这些记录不应跨不同对象分开.假设
" phno"是每个记录的唯一标识符,一个更好的数据结构
将会:
记录= {
'dgsd':{'email':'dg','name':'ds','adverse':'dg'},
'gsdg':{'email':'sgsd','name':'ds','adverse':'dsgsdg'},
# ETC
}
这样,查找尽可能简单有效.
我的2美分...
你好,
我同意你的看法,我的数据强烈效率不高.但是所有的
记录,即...名称,phno,电子邮件,地址均在r上生成 联合国,
当用户进入它们时.因此,我该如何设计我的数据架构
那个情况?
# 回答8


Lee aécrit:
恐怕这不是您实际需要 *的,请参见我的其他帖子.
# 回答9


李写道:这很简单(提示:读取fineanual(tm)for dict.items()andlist.index()),但是1/完全效率低下和2/不garanteed以产生asingle的价值(如果'dfsdf'发生什么,那会发生什么?也是绑定到密钥"地址"的第四项?).我可以建议您重新考虑数据结构吗?您所拥有的显然是'phno/email/name/adderes'Records的集合.这些记录不应在不同的对象上分配.假设" phno'是每个记录的唯一标识符,则更好的数据结构将是:records = {'dgsd':{'email':'dg','name':'ds':'ds','spords':'sdg'} ,'gsdg':{'email':'sgsd','name':'ds','dercement':'dsgsdg'},#eqf}这样,查找效率尽可能简单和高效.我的2美分...

你好,
我同意你的看法,我的数据强烈效率不高.但是所有的
记录,即...名称,phno,电子邮件,地址都是在运行时生成的,
当用户进入它们时.因此,我该如何设计我的数据架构
那个情况?
击键上的" U"短?您不是在这里发短信...
关于实际问题:构建您或
另一个结构.这只是您首先使用哪个键的问题.
而不是先查找记录的类型(" phno"或某些类型),而是
用用户的名称来做到这一点.如果没有记录,请创建一个.然后
用用户的值填充记录.像这样:
用户=" DSDF"
Phonenumber =" 123"
record = records.setDefault(用户,{})
记录[" phno"] = Phonenumber
diez

# 回答10


9月1日,下午2:37," Diez B. Roggisch" 击键上的" U"短?您不是在这里发短信...
关于实际问题:构建您或
另一个结构.这只是您首先使用哪个键的问题.
而不是先查找记录的类型(" phno"或某些类型),而是
用用户的名称来做到这一点.如果没有记录,请创建一个.然后
用用户的值填充记录.像这样:
用户=" DSDF"
Phonenumber =" 123"
record = records.setDefault(用户,{})
记录[" phno"] = Phonenumber
迪兹
我对那个击键是Soory.谁能告诉我我该如何改变
键的值.
假设我有词典
kev = {'kabir':['kthexproy@kabir.com','1234','missuri'],'shri':
['s h@shri.com','23423','India'],'Marsa':['m them@m thomarsa.com',,
'2345','Brazil']," Sandeep":['sphedephect@sandep.com',007','007',
'加拿大']}
我该如何将钥匙更改为" Sabir"之类的东西,以及我该如何
改变卡比尔的价值?
# 回答11


在2008年9月1日星期一03:51:13 -0700(PDT),Lee写道:
kev ['sabir'] = kev ['kabir']
del kev ['kabir']
kev ['sabir'] [0] ='sthexhde@sabir.com'
*未经测试*
- -
问候,
wojtek walczak,http://tosh.pl/gminick/
# 回答12


在9月 1,3:59 PM,Wojtek Walczak kev ['sabir'] = kev ['kabir']
del kev ['kabir']
kev ['sabir'] [0] ='sa ...@sabir.com'
*未经测试*
- -
问候,
Wojtek Walczak,http://tosh.pl/gminick/
谢谢Wojtek,它有效:)
# 回答13


Lee aécrit:
(剪)

您的帽子钥匙打破了吗? - )

(剪)
我并不是说要苛刻,但是您读过Fineanual(TM)吗?这一切
是非常基本的(没有双关语)的东西,主要是记录的,并且易于尝试
使用交互式解释器.这个NG非常适合新手,但是
这并不意味着您希望不做最小的
通过教程和自己尝试几件事的努力
问之前.
希望您会理解上面的备注打算成为有用的建议...
# 回答14


亚历山德鲁·帕拉德(Alexandru Palade)写道:
轻微变化:
lookfor ='dfsdf'
对于项目,kev.items()中的值:
对于我,枚举(价值)中的val:
如果val == lookfor:
打印项目,我
休息#假设您只想要一个结果
别的:
打印外观,"未找到"
这就是福尔斯的目的.
如果您希望0到很多外观,
lookfor ='dfsdf'
命中= []
对于项目,kev.items()中的值:
对于我,枚举(价值)中的val:
如果val == lookfor:
hits.append((item,i))
打印命中
当然,单线狂热者会将其重写为
hits = [(item,i)对于项目,kev.items()in for i,val in Val in
枚举(值)如果val == lookfor]
特里·扬·里迪(Terry Jan Reedy)
tjr

标签: python

添加新评论