① python中的字典是什么
字典(Dictionary)
字典也是Python语言中经常使用的一种数据类型。跟列表类似,字典是另外一种可存储任意类型的数据,并且字典储存的数据也是可以修改的。
不同于列表的是,字典每个基本元素都包括两个部分:键(key) 和 键对应的值(value)。
键和值之间用冒号(:)分割,每对元素之间用逗号(,)分割,整个字典的数据在大括号{}中,格式如下所示:
在字典中,键的内容是不可重复的。键为不可变数据类型,值可以是任何数据类型。在这里,键只支持字符串类型。
字典最大的优势就是能在海量数据下利用“键”快速查找出想要的值,当有很多数据需要存储的时候,我们给每个值都打个标签,也就是“键”;想要调用这个值时,字典能够利用这个标签快速帮我们找到它。但是如果标签重复了,字典不知道哪个值才是对的,就会报错哦~
列表是根据排序来记录每项的值,但是字典是没有顺序的,所以同一字典,每次打印出的排序可能是不同的。“键”才是调用字典的关键元素。
字典是基础的数据类型,所以变量也可以被赋值为字典。
② python 怎么给字典添加一对值
如果只是添加一次,
>>>
l
=
['01',
'张三']
>>>
dic
=
{}
>>>
dic[l[0]]
=
l[1]
如果有大量的这种二元列表要添加到字典中,那么
>>>
data
=
[['01',
'张三'],
['02',
'李四'],
['03',
'None']]
>>>
dic
=
dict(data)
输入
>>>help(dict)
可以看到如下解释:
dict(iterable)
->
new
dictionary
initialized
as
if
via:
|
d
=
{}
|
for
k,
v
in
iterable:
|
d[k]
=
v
传入参数是二元可迭代对象(二元元组、列表等)时,形成对应键值对
③ 求助:python 二级字典如何快速排序
def sbv0(adict,reverse=False):
return sorted(adict.iteritems(), key=lambda (k,v): (v,k), reverse=reverse)
def sbv1(d,reverse=False):
L = [(k,v) for (k,v) in d.iteritems()]
return sorted(L, key=lambda x: x[1] , reverse=reverse)
def sbv2(d,reverse=False):
L = ((k,v) for (k,v) in d.iteritems())
return sorted(L, key=lambda x: x[1] , reverse=reverse)
def sbv3(d,reverse=False):
return sorted(d.iteritems(), key=lambda x: x[1] , reverse=reverse)
def sbv4(d,reverse=False):
def sk(x):
return x[1]
return sorted(d.iteritems(), key=sk , reverse=reverse)
def sk(x):
return x[1]
def sbv5(d,reverse=False):
return sorted(d.iteritems(), key=sk , reverse=reverse)
from operator import itemgetter
def sbv6(d,reverse=False):
return sorted(d.iteritems(), key=itemgetter(1), reverse=True)
D = dict(zip(range(100),range(100)))
from profile import run
for ii in xrange(10000):
sbv6(D, reverse=True)
#run(for ii in xrange(10000): sbv0(D, reverse=True))
#run(for ii in xrange(10000): sbv1(D, reverse=True))
#run(for ii in xrange(10000): sbv2(D, reverse=True))
#run(for ii in xrange(10000): sbv3(D, reverse=True))
#run(for ii in xrange(10000): sbv4(D, reverse=True))
#run(for ii in xrange(10000): sbv5(D, reverse=True))
#run(for ii in xrange(10000): sbv6(D, reverse=True))
④ python修改二元字典数据出错是什么原因
要把代码发现来才知道,以下是常见的错误 下面终于要讲到当你用到更多的Python的功能(数据类型,函数,模块,类等等)时可能碰到的问题了。由于篇幅有限,这里尽量精简,尤其是对一些高级的概念。要想了解更多的细节,
⑤ python字典的特点和用处
字典的特点:
字典的每个健值的展现方式是:key:value用冒号分割;键值之间为逗号分割;整个字典用大括号{}将键值括起来;
键值可以是任意类型的对象;
键必须是唯一的;
键是不可变的;
字典的作用:
字典(日常生活中的字典和Python字典)旨在让你能够轻松地找到特定的单词(键),以获悉其定义(值)。
在很多情况下,使用字典都比使用列表更合适。下面是Python字典的一些用途:
表示棋盘的状态,其中每个键都是由坐标组成的元组;
存储文件修改时间,其中的键为文件名;
数字电话/地址簿。
⑥ Python 两个字典的键和值如何转换
使用map从一个列表映射到另一个列表:
a={'1':'张三',
....'2':'李四',
....'3':'王五'}
b = {'text':[1,2,3],
....'text2':[1,3]}
c = {}
for k,v in b.items():
....c[k] = list(map(lambda _:a[str(_)], v))
print(c)
⑦ python中,怎么做个字典,数句子中单词出现的次数
text = raw_input("enter a sentence:")
words = text.split()
wordscount = [words.count(elem) for elem in words]
worddict={map(None,words,wordscount)}
要完成你的目标:
我要
计算每个词语出现的次数,
把词语出现的次数和词语列表组合成字典;
伪代码出来了,程序也就有了....
python有着强大的列表解析,内建模块使用C完成,他们很快,所以能够调用内建模块你就不要自己多事。
尽量按照伪代码去完成程序,除非必须细化,否则让python为你操作低层吧,他很聪明
第三句释义:
对于列表元素计数有很简单的list.count()方法。
这个语句就是利用了这个,statement for element in list fileter expression这是list的解析式。
通过这个你可以方便的将一个list解析为另一个。这一句就对list中所有的元素运用count()方法,并且建立新的list。
另外一个例子:a=[2,3,4,7,8]找到这个list中的偶数,并得到它们的平方列表
这样写:[elem*elem for elem in a if elem%2==0]
第四句释义:
list有个map方法,它可以提供list的映射。map(statement,list1,list2)就是将list1,list2按照statement规则映射。我的表达式是none所以得到的结果就是简单的[('this', 3), ('is', 4), ('a', 1)]这样的二元tuple列表。
dict函数则是针对上述list的。它能把上述list转化为字典。
这在你做数据处理时很有好处,你可以很轻松的建立一个hash表。
python的强大在于简明,遇到程序尝试着用最简单地方法去解决,你会很快喜欢上的。
以上^乐于与您交流
⑧ Python中创建字典的几种方法总结
1.传统的文字表达式:
>>>d={'name':'Allen','age':21,'gender':'male'}
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你可以事先拼出整个字典,这种方式是很方便的。
2.动态分配键值:
>>>d={}
>>>d['name']='Allen'
>>>d['age']=21
>>>d['gender']='male'
>>>d
{'age':21,'name':'Allen','gender':'male'}
如果你需要一次动态地建立一个字典的一个字段,那么这种方式比较合适。
字典与列表不同,不能通过偏移量进行复制,只能通过键来读取或赋值,所以也可以这样为字典赋值,当然访问不存在的键会报错:
>>>d[1]='abcd'
>>>d
{1:'abcd','age':21,'name':'Allen','gender':'male'}
>>>d[2]
Traceback(mostrecentcalllast):
File"<pyshell#9>",line1,in<mole>d[2]
KeyError:212345678
3.字典键值表
>>>c=dict(name='Allen',age=14,gender='male')
>>>c
{'gender':'male','name':'Allen','age':14}
因为这种形式语法简单,不易出错,所以非常流行。
这种形式所需的代码比常量少,但是键必须都是字符串才行,所以下列代码会报错:
>>>c=dict(name='Allen',age=14,gender='male',1='abcd')
SyntaxError:keywordcan'tbeanexpression
4.字典键值元组表
>>>e=dict([('name','Allen'),('age',21),('gender','male')])
>>>e
{'age':21,'name':'Allen','gender':'male'}
如果你需要在程序运行时把键和值逐步建成序列,那么这种方式比较有用。
5.所有键的值都相同或者赋予初始值:
>>>f=dict.fromkeys(['height','weight'],'normal')
>>>f
{'weight':'normal','height':'normal'}
⑨ 如何用python写入两个字典,即两个{}
你只mp了一个data,test_results并没有。可以再json.mp(test_results,f)然后再f.clost()
mp两次,读的时候也要load两次
或者
把data和test_results赋给另一个变量n,json.mp(n,f)不就结了
⑩ python中字典里的循环
你的names应该是一个(存放着二元组或者二元列表的)列表或者元祖,比如[[1,2]],你的代码就是把它变成了[{"companyId":1,"name":2}]这种内部元素是字典的列表