PiaYie

字典


 

1.字典是Python的内建数据类型,我们知道序列是以连续的整数为索引,而字典用关键字作为索引。特别的,关键字必须是不可变类型,常为字符串或者数值。

#如果元组中只包含字符串和数字,它可以作为关键字,如果它直接或间接地包含了可变对象,就不能当做关键字。
#不能用链表做关键字,因为链表可以用索引、切割或者 append() 和 extend() 等方法改变。
(key:value)

同一个dict中键值必须唯一

用{}来创建空字典

dict.keys()返回字典中所有关键字组成的无序列表

dict.values()

dict.items()   items()方法得出来的项都是元组。

>>> englishLetterFreq = {\'E\': 12.70, \'T\': 9.06, \'A\': 8.17, \'O\': 7.51, \'I\': 6.97, \'N\': 6.75, \'S\': 6.33, \'H\': 6.09, \'R\': 5.99, \'D\': 4.25, \'L\': 4.03, \'C\': 2.78, \'U\': 2.76, \'M\': 2.41, \'W\': 2.36, \'F\': 2.23, \'G\': 2.02, \'Y\': 1.97, \'P\': 1.93, \'B\': 1.29, \'V\': 0.98, \'K\': 0.77, \'J\': 0.15, \'X\': 0.15, \'Q\': 0.10, \'Z\': 0.07}
>>> print(englishLetterFreq.keys())
dict_keys([\'E\', \'T\', \'A\', \'O\', \'I\', \'N\', \'S\', \'H\', \'R\', \'D\', \'L\', \'C\', \'U\', \'M\', \'W\', \'F\', \'G\', \'Y\', \'P\', \'B\', \'V\', \'K\', \'J\', \'X\', \'Q\', \'Z\'])
>>> print(englishLetterFreq.values()) 
dict_values([12.7, 9.06, 8.17, 7.51, 6.97, 6.75, 6.33, 6.09, 5.99, 4.25, 4.03, 2.78, 2.76, 2.41, 2.36, 2.23, 2.02, 1.97, 1.93, 1.29, 0.98, 0.77, 0.15, 0.15, 0.1, 0.07])
>>> print(englishLetterFreq.items())  
dict_items([(\'E\', 12.7), (\'T\', 9.06), (\'A\', 8.17), (\'O\', 7.51), (\'I\', 6.97), (\'N\', 6.75), (\'S\', 6.33), (\'H\', 6.09), (\'R\', 5.99), (\'D\', 4.25), (\'L\', 4.03), (\'C\', 2.78), (\'U\', 2.76), (\'M\', 2.41), (\'W\', 2.36), (\'F\', 2.23), (\'G\', 2.02), (\'Y\', 1.97), (\'P\', 1.93), (\'B\', 1.29), (\'V\', 0.98), (\'K\', 0.77), (\'J\', 0.15), (\'X\', 0.15), (\'Q\', 0.1), (\'Z\', 0.07)])
>>> list(englishLetterFreq.items())  
[(\'E\', 12.7), (\'T\', 9.06), (\'A\', 8.17), (\'O\', 7.51), (\'I\', 6.97), (\'N\', 6.75), (\'S\', 6.33), (\'H\', 6.09), (\'R\', 5.99), (\'D\', 4.25), (\'L\', 4.03), (\'C\', 2.78), (\'U\', 2.76), (\'M\', 2.41), (\'W\', 2.36), (\'F\', 2.23), (\'G\', 2.02), (\'Y\', 1.97), (\'P\', 1.93), (\'B\', 1.29), (\'V\', 0.98), (\'K\', 0.77), (\'J\', 0.15), (\'X\', 0.15), (\'Q\', 0.1), (\'Z\', 0.07)]
>>>

 

使用 in 关键字(指 Python 语法)可以检查字典中是否存在某个关键字

dict() 构造函数可以直接从 key-value 对中创建字典:

>>> dict([(\'sape\', 4139), (\'guido\', 4127), (\'jack\', 4098)])
{\'sape\': 4139, \'jack\': 4098, \'guido\': 4127}

字典推导式可以从任意的键值表达式中创建字典:

>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}

如果关键字都是简单的字符串,有时通过关键字参数指定 key-value 对更为方便:

>>> dict(sape=4139, guido=4127, jack=4098)
{\'sape\': 4139, \'jack\': 4098, \'guido\': 4127}

 


 

和列表一样,变量保存的并不是字典值本身,而是字典的引用,

列表可以包含其他列表,同样,字典也可以包含其他字典


字典中使用len()函数:

  返回字典中的(key:value)对的数量


字典中使用in运算:

  in运算符检查一个键key是否在字典里,而不是一个value


字典中使用for运算符:

  迭代字典里的键key  !!!!!!

 

 


总结一下字典和列表的区别:

1、字典的项没有固定的顺序,而列表中有顺序,即下标

2、字典不能使用+运算符来进行连接。

  如果是添加新的项,那么就添加新的(key:value)对即可:

    foo[\'a new key\'] = \'a string\'

3、列表下标是整数索引,从 0 到 len(list)-1; 而字典可以有任何键。

4、在字典上查找比在列表上查找更快。

  in 运算符在字典上使用比在列表中使用快,参考http://invpy.com/listvsdict

 


split()方法

  \'a long string with space or not\'.split() 返回字符串列表,在空格的地方做分割。

  也可以给split(\'xxx\')方法传递一个可选的参数,告诉他在出现这个参数\'xxx\'的时候做分割


 

一些强制类型转换 

  float()    转化成浮点数

  int()       转化成整数,去掉小数

  str()       转化成string

分类:

技术点:

相关文章:

  • 2021-09-21
  • 2021-05-25
  • 2021-07-10
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2022-01-09
  • 2021-11-20
  • 2021-07-22
  • 2022-12-23
  • 2022-12-23
  • 2021-05-27
相关资源
相似解决方案