(1)遍历key值
>>> a
{'a': '1', 'b': '2', 'c': '3'}>>> for key in a: print(key+':'+a[key])
a:1b:2c:3
>>> for key in akeys(): print(key+':'+a[key])
a:1b:2c:3
在使用上,for key in a和 for key in akeys():完全等价。
(2)遍历value值
>>> for value in avalues(): print(value)
1
2
3
(3)遍历字典项
>>> for kv in aitems(): print(kv)
('a', '1')
('b', '2')
('c', '3')
(4)遍历字典健值
>>> for key,value in aitems(): print(key+':'+value)
a:1b:2c:3
>>> for (key,value) in aitems(): print(key+':'+value)
a:1b:2c:3
你的x,y是代表的未知元素吧,不然a就只有{('x','y'):(0,0)}这一个元素了。下面说问题:
对于字典的key值遍历可以用items()函数来实现,比如下面的代码:
a={('a','b'):(0,0),('c','d'):(1,1),('e','f'):(2,2)}for i,j in aitems():
print(i,':',j)
输出的结果是:
('c', 'd') : (1, 1)
('e', 'f') : (2, 2)
('a', 'b') : (0, 0)
也就是说对for i,j in aitems()这句话,i得到是字典的key值,j得到的是字典的value,如果想只遍历字典的key值,也就是你要的('x','y'),那么把print(i,' : ',j)改成print(i)就可以了(具体输出格式你自己定制就好,不一定按我的)
字典不记录顺序。
你可以另外建一个列表
keys=[]
在构建字典的同时把键填到这个key中
dic[1234]="你好"
keysappend(1234)
取字典的时候用keys里的有顺序的键
print(dic[keys[0]])
print(dic[keys[1]])
python字典是可变类型,不能用作字典的键(key);
遍历字典时使用items() 返回字典的key 和val;
遍历字典中的字典,你需要遍历items()返回的 val;
for key in e:
for value in e[key]:
print value
Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。
Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
字段是Python是字典中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快。下面列出字典的常用的用途
一、字典中常见方法列表
代码如下:
#方法
#描述
-------------------------------------------------------------------------------------------------
Dclear()
#移除D中的所有项
Dcopy()
#返回D的副本
Dfromkeys(seq[,val])
#返回从seq中获得的键和被设置为val的值的字典。可做类方法调用
Dget(key[,default])
#如果D[key]存在,将其返回;否则返回给定的默认值None
Dhas_key(key)
#检查D是否有给定键key
Ditems()
#返回表示D项的(键,值)对列表
Diteritems()
#从Ditems()返回的(键,值)对中返回一个可迭代的对象
Diterkeys()
#从D的键中返回一个可迭代对象
Ditervalues()
#从D的值中返回一个可迭代对象
Dkeys()
#返回D键的列表
Dpop(key[,d])
#移除并且返回对应给定键key或给定的默认值D的值
Dpopitem()
#从D中移除任意一项,并将其作为(键,值)对返回
Dsetdefault(key[,default])
#如果D[key]存在则将其返回;否则返回默认值None
Dupdate(other)
#将other中的每一项加入到D中。
Dvalues()
#返回D中值的列表
二、创建字典的五种方法
方法一:
常规方法
代码如下:
#
如果事先能拼出整个字典,则此方法比较方便
>>>
D1
=
{'name':'Bob','age':40}
方法二:
动态创建
代码如下:
#
如果需要动态地建立字典的一个字段,则此方法比较方便
>>>
D2
=
{}
>>>
D2['name']
=
'Bob'
>>>
D2['age']
=
40
>>>
D2
{'age':
40,
'name':
'Bob'}
方法三:
dict--关键字形式
代码如下:
#
代码比较少,但键必须为字符串型。常用于函数赋值
>>>
D3
=
dict(name='Bob',age=45)
>>>
D3
{'age':
45,
'name':
'Bob'}
方法四:
dict--键值序列
代码如下:
#
如果需要将键值逐步建成序列,则此方式比较有用,常与zip函数一起使用
>>>
D4
=
dict([('name','Bob'),('age',40)])
>>>
D4
{'age':
40,
'name':
'Bob'}
或
代码如下:
>>>
D
=
dict(zip(('name','bob'),('age',40)))
>>>
D
{'bob':
40,
'name':
'age'}
方法五:
dict--fromkeys方法#
如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化
代码如下:
>>>
D5
=
dictfromkeys(['A','B'],0)
>>>
D5
{'A':
0,
'B':
0}
如果键的值没提供的话,默认为None
代码如下:
>>>
D3
=
dictfromkeys(['A','B'])
>>>
D3
{'A':
None,
'B':
None}
三、字典中键值遍历方法
代码如下:
>>>
D
=
{'x':1,
'y':2,
'z':3}
#
方法一
>>>
for
key
in
D:
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
key,
value
in
Ditems():
#
方法二
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
>>>
for
key
in
Diterkeys():
#
方法三
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
value
in
Dvalues():
#
方法四
value
2
1
3
>>>
for
key,
value
in
Diteritems():
#
方法五
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
Note:用Diteritems(),
Diterkeys()的方法要比没有iter的快的多。
四、字典的常用用途之一代替switch
在C/C++/Java语言中,有个很方便的函数switch,比如:
代码如下:
public
class
test
{
public
static
void
main(String[]
args)
{
String
s
=
"C";
switch
(s){
case
"A":
Systemoutprintln("A");
break;
case
"B":
Systemoutprintln("B");
break;
case
"C":
Systemoutprintln("C");
break;
default:
Systemoutprintln("D");
}
}
}
在Python中要实现同样的功能,
方法一,就是用if,
else语句来实现,比如:
代码如下:
from
__future__
import
division
def
add(x,
y):
return
x
+
y
def
sub(x,
y):
return
x
-
y
def
mul(x,
y):
return
x
y
def
div(x,
y):
return
x
/
y
def
operator(x,
y,
sep='+'):
if
sep
==
'+':
add(x,
y)
elif
sep
==
'-':
sub(x,
y)
elif
sep
==
'':
mul(x,
y)
elif
sep
==
'/':
div(x,
y)
else:
'Something
Wrong'
__name__
if
__name__
==
'__main__':
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
s
=
raw_input("Enter
operation
here(+
-
/):
")
operator(x,
y,
s)
方法二,用字典来巧妙实现同样的switch的功能,比如:
代码如下:
#coding=gbk
from
__future__
import
division
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
def
operator(o):
dict_oper
=
{
'+':
lambda
x,
y:
x
+
y,
'-':
lambda
x,
y:
x
-
y,
'':
lambda
x,
y:
x
y,
'/':
lambda
x,
y:
x
/
y}
return
dict_operget(o)(x,
y)
if
__name__
==
'__main__':
o
=
raw_input("Enter
operation
here(+
-
/):
")
operator(o)
以上就是关于为什么无法遍历字典Python全部的内容,包括:为什么无法遍历字典Python、python循环遍历字典元素问题求指教、我怎么才能把python的字典里面的数据按照原始顺序遍历出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)