zoukankan      html  css  js  c++  java
  • python学习(二)

    python字典操作

      Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可以为任何Python数据类型。

    1.新建字典

    >>> dicta = {}
    >>> type(dicta)
    <type 'dict'>

    2.给字典增加value

    >>> dicta['name'] = 'nh'
    >>> print dicta
    {'name': 'nh'}

    3.给字典增加元素

    >>> dicta = {}
    >>> type(dicta)
    <type 'dict'>
    >>> dicta['name'] = 'nh'
    >>> print dicta
    {'name': 'nh'}
    >>> dicta['sex'] = 'boy'
    >>> print dicta
    {'name': 'nh', 'sex': 'boy'}

    注意:给字典增加新元素key:value,直接以赋值的方式增加就行,无需事先定义。

    4.删除字典

    #删除指定键-值对 
    >>> del dicta['sex']    #也可以用pop方法,dict1.pop('sex')
    >>> print dicta
    {'name': 'nh'}
    
    #清空字典
    >>> dicta.clear()
    >>> print dicta
    {}
    
    #删除字典对象
    >>> del dicta
    >>> print dicta
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'dicta' is not defined

    5.字典的遍历

    >>> print dicta
    {'name': 'nh', 'sex': 'boy'}
    >>> for i in dicta:    #遍历字典key
    ...     print i
    ... 
    name
    sex
    >>> for i in dicta:    #遍历字典value
    ...     print i, dicta[i]
    ... 
    name nh
    sex boy

     6.一个练习题——公交换乘

    1. 项目要求:用户输入起点,再输入终点站。 我们程序根据 公交站的字典查找到换乘的位置。
    2. 我们程序要:提示 换乘站 和换乘路线。
    3. 我们先从简单的入手,只考虑俩辆公交换乘。数据如下:
      375:西直门,文慧桥,蓟门桥,学院路,知春路
      562:蓟门桥,学院路,中关村
      387:学院路,北京西站

      思路:读取数据,将每一路车表示成一个字典,字典的key为公交号码bus_name及站点station,用split方法取出key的值。由于每路车有多个站点,所以将这些站点保存在列表中。然后判断出发站点和终止站点分别在哪路车中(即哪个列表中),运用set(l1)&set(l2)比较这两个列表的交集,即是换乘站。具体实现如下:

       1 #coding:utf-8
       2 
       3 f = open('bus.txt')    #保存数据的文件
       4 all_bus = f.readlines()
       5 f.close()
       6 
       7 start = "西直门"
       8 end = "北京西站"
       9 dict_bus = {}
      10 list_bus = []
      11 
      12 for i in all_bus:
      13         i = i.strip('
      ')    #去掉结尾的换行符
      14         dict_bus = {}
      15         dict_bus['station'] = i.split(':')[1].split(',')    #给station赋值
      16         dict_bus['busname'] = i.split(':')[0]    #给busname赋值
      17         list_bus.append(dict_bus)    #保存入列表
      18 #print list_bus
      19 
      20 for i in list_bus:
      21         one_station = i.values()[1]
      22         if start in one_station:
      23                 start_bus = i.values()[0]
      24                 l1 = one_station
      25         if end in one_station:
      26                 end_bus = i.values()[0]
      27                 l2 = one_station
      28 
      29 l3 = set(l1) & set(l2)    #取交集
      30 #print list(l3)
      31 print "%s=>" %start_bus,
      32 for bus in list(l3):
      33         print bus,
      34 print "=>%s" %end_bus

      运行结果:

      root@***:~# python test11.py
      375=> 学院路 =>387

       

  • 相关阅读:
    RT-SA-2019-005 Cisco RV320 Command Injection Retrieval
    RT-SA-2019-003 Cisco RV320 Unauthenticated Configuration Export
    RT-SA-2019-004 Cisco RV320 Unauthenticated Diagnostic DataRetrieval
    RT-SA-2019-007 Code Execution via Insecure Shell Functiongetopt_simple
    APPLE-SA-2019-3-25-1 iOS 12.2
    APPLE-SA-2019-3-25-5 iTunes 12.9.4 for Windows
    APPLE-SA-2019-3-25-6 iCloud for Windows 7.11
    APPLE-SA-2019-3-25-4 Safari 12.1
    Mybatis下的sql注入
    java代码审计中的一些常见漏洞及其特征函数
  • 原文地址:https://www.cnblogs.com/goodhacker/p/3149522.html
Copyright © 2011-2022 走看看