Dict Hash Table


  • 在Python中Key/Value结构的哈希表叫做Dict[字典]

  • 字典使用{}定义,内容是一系列的Key:Value。空的字典用{}表示

  • 字符串、数字、元组都可以作为字典的key.

      ## Can build up a dict by starting with the the empty dict {}
      ## and storing key/value pairs into the dict like this:
      ## dict[key] = value-for-that-key
      dict = {}   #创建空字典
      dict['a'] = 'alpha'  # 使用dict[key] = value的方式对字典赋值
      dict['g'] = 'gamma'
      dict['o'] = 'omega'
    
      print dict  ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}
    
      print dict['a']     ## 返回 'alpha'
      dict['a'] = 6       ## 对 dict['a'] 赋值
      'a' in dict         ## True
      ## print dict['z']                  ## 找不到对应的key,会抛出异常
      if 'z' in dict: print dict['z']     ## 
      print dict.get('z')  ## None (instead of KeyError)

clipboard.png

  • 可以使用for循环打印字典的key

      # 方法一
      for key in dict: print key
      ## prints a g o
  • 可以使用dict.keys() 和 dict.values()获得字典的key和value

  ##dict.keys()
  ## Exactly the same as above
  for key in dict.keys(): print key

  ##打印dict.keys()返回的列表:
  print dict.keys()  ## ['a', 'o', 'g']

  ## 返回字典中value组成的列表
  print dict.values()  ## ['alpha', 'omega', 'gamma']

  ## 可以对key进行排序,并打印对应的key和value
  for key in sorted(dict.keys()):
    print key, dict[key]
  • dict.item()方法可以返回由(key,value)组成的元组

      print dict.items()  ##  [('a', 'alpha'), ('o', 'omega'), ('g', 'gamma')]
    
      ## 循环打印key和value
      for k, v in dict.items(): print k, '>', v
      ## a > alpha    o > omega     g > gamma

Dict Formatting


  • % 操作符同样适用于字典

      hash = {}
      hash['word'] = 'garfield'
      hash['count'] = 42
      s = 'I want %(count)d copies of %(word)s' % hash  # %d for int, %s for string
      # 'I want 42 copies of garfield'

Del


  • "Del"操作符用来删除一个变量的定义。"Del"操作符能够作用于list元素或者切片

      var = 6
      del var  # 删除变量var
      
      list = ['a', 'b', 'c', 'd']
      del list[0]     ## 删除列表中的第一个元素
      del list[-2:]   ## 删除列表最后两个元素
      print list      ## ['b']
    
      dict = {'a':1, 'b':2, 'c':3}
      del dict['b']   ## 删除key=b的字典条目
      print dict      ## {'a':1, 'c':3}

Files


  • Open()函数返回一个文件的句柄,通常用来读取或者写入一个文件

      # Echo the contents of a file
      f = open('foo.txt', 'rU')
      for line in f:   ## iterates over the lines of the file
        print line,    ## trailing , so print does not add an end-of-line char
                       ## since 'line' already includes the end-of line.
      f.close()
  • f.readlines()方法会将整个文件放入内存,返回以每行为元素的列表

    f.readlines()
    ['Hello,时隔一个多月,终于再次回到博客啦,首先跟大家说声抱歉,许多评论没有及时回复感到非常抱歉,希望我现在给大家的回复为时不晚。\n',
     '\n',
     '距离上次在博客上写日记过去了几个月了吧。那时的我刚刚结束大学三年级。而现在,大四上半学期已经过半啦。这半年的时间可以说忙也可以说不忙。不忙是说这半年以来的课程比较轻松,只有四门选修课,学业负担比较轻。忙是说半年以来各种错综复杂的事情,许多事情需要好好安排一下时间才可以好好把握各个“进程”的合理分配。\n',
     '\n',
     '那么就从我上次日记开始总结一下吧。']
  • read()方法会读取整个文件,并把文件内容放到一个字符串中

    f = open('liwei.txt')
    f.read()
    'Hello,时隔一个多月,终于再次回到博客啦,首先跟大家说声抱歉,许多评论没有及时回复感到非常抱歉,希望我现在给大家的回复为时不晚。\n\n距离上次在博客上写日记过去了几个月了吧。那时的我刚刚结束大学三年级。而现在,大四上半学期已经过半啦。这半年的时间可以说忙也可以说不忙。不忙是说这半年以来的课程比较轻松,只有四门选修课,学业负担比较轻。忙是说半年以来各种错综复杂的事情,许多事情需要好好安排一下时间才可以好好把握各个“进程”的合理分配。\n\n那么就从我上次日记开始总结一下吧。'
  • f.write()方法可以将内容写入文件中。除此之外,在Python3中,可以使用 print(string,file=f)来写入


libydwei
22 声望2 粉丝

漫漫人生路,有点自己的兴趣很重要。


引用和评论

0 条评论