• Python基础——原生数据类型(字典,列表,元组,字符串)


    字典Dictionary

    字典定义了键值对的1对1管理。

    1、定义字典

    请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式。
    我们能通过key得到value,但是不能通过value得到key。
    还可以通过get方法得到对应key的value。

    d={'server':'mpilgrim','database':'master'}
    d
    
    {'database': 'master', 'server': 'mpilgrim'}
    
    d['server']
    
    'mpilgrim'
    
    d['database']
    
    'master'
    
    d.get('server')
    
    'mpilgrim'
    

    2、修改字典

    字典中的key是不能重复的,当添加一个新的value到对应的key时,将会抹除之前的value。
    我们可以直接给字典指定一个key-value,直接赋值就好了,一个新的key可以添加到字典中。
    随时可以给字典添加内容。

    d['database']='pubs'
    d
    
    {'database': 'pubs', 'server': 'mpilgrim'}
    
    d['uid']='sa'
    d
    
    {'database': 'pubs', 'server': 'mpilgrim', 'uid': 'sa'}
    
    d.keys()
    
    dict_keys(['server', 'database', 'uid'])
    
    d.items()
    
    dict_items([('server', 'mpilgrim'), ('database', 'pubs'), ('uid', 'sa')])
    

    需要注意的是,字典是无序的,我们最后插入的key-value不一定在输出的时候排在最后。
    另外,字典的key是大小写敏感的,请注意。

    d={}
    d['key']='value'
    d['Key']='other value'
    d
    
    {'Key': 'other value', 'key': 'value'}
    

    字典中的value的类型是不固定的,可以是字符串,整形或者其他类型。

    d['retrycount']=3
    d
    
    {'Key': 'other value', 'key': 'value', 'retrycount': 3}
    

    3、删除item

    del命令可以删除字典中指定key的元素。
    clear命令可以删除字典中的所有元素。
    pop命令也可以删除指定元素。

    del d['Key']
    d
    
    {'key': 'value', 'retrycount': 3}
    
    d.clear()
    d
    
    {}
    
    d['try']='hello'
    d.pop('try')
    d
    
    {}
    

    列表List

    list是python的主力数据类型。

    1、定义列表

    列表中的定位,0是第一个。
    定位为正的话,是正序的,从前向后数。
    定位值为负的话,是逆序的,从后向前数。
    li[-n]==li[len(li)-n]

    li=['a','b','mpilgrim','z','example']
    li
    
    ['a', 'b', 'mpilgrim', 'z', 'example']
    
    li[0]
    
    'a'
    
    li[4]
    
    'example'
    
    li[-1]
    
    'example'
    
    li[-3]
    
    'mpilgrim'
    

    列表切片

    指定前后位置的情况

    li[1:3]#不包括最后一位
    
    ['b', 'mpilgrim']
    
    li[1:-1]#不包括最后一位
    
    ['b', 'mpilgrim', 'z']
    
    li[0:3]#不包括最后一位
    
    ['a', 'b', 'mpilgrim']
    

    不指定前后位置,或者只指定一个位置

    li[:3]#从第一位到第三,不包括坐标为3的元素
    
    ['a', 'b', 'mpilgrim']
    
    li[3:]#从坐标为3的元素,直到最后一位
    
    ['z', 'example']
    
    li[:]#不指定前后位置,默认选取所有元素
    
    ['a', 'b', 'mpilgrim', 'z', 'example']
    

    2、给列表添加元素

    append方法能添加一个元素到列表尾部。
    insert方法可以在指定坐标处,添加一个元素。
    extend可以在尾部添加一组元素,一个list。

    li.append('new')
    li
    
    ['a', 'b', 'mpilgrim', 'z', 'example', 'new', 'new']
    
    li.insert(2,'new')
    li
    
    ['a', 'b', 'new', 'new', 'mpilgrim', 'z', 'example', 'new', 'new']
    
    li.extend(['two','elements'])
    li
    
    ['a',
     'b',
     'new',
     'new',
     'mpilgrim',
     'z',
     'example',
     'new',
     'new',
     'two',
     'elements']
    

    我们举例子说一下append和extend的区别。

    T=['a','b','c']
    T.extend(['d','e','f'])
    T
    
    ['a', 'b', 'c', 'd', 'e', 'f']
    
    len(T)
    
    6
    
    T=['a','b','c']
    T.append(['d','e','f'])
    T
    
    ['a', 'b', 'c', ['d', 'e', 'f']]
    
    len(T)
    
    4
    

    3、搜索列表

    index方法可以获取对应元素的坐标。
    in方法可以判断列表中是否存在某个元素。

    T
    
    ['a', 'b', 'c', ['d', 'e', 'f']]
    
    T.index('a')
    
    0
    
    T.index('c')
    
    2
    
    'd' in T
    
    False
    

    4、删除元素

    remove方法删除指定元素
    pop方法,删除列表中最后一个元素

    li=['a','b','new','baidu','two','new','element']
    li
    
    ['a', 'b', 'new', 'baidu', 'two', 'new', 'element']
    
    li.remove('baidu')
    li
    
    ['a', 'b', 'new', 'two', 'new', 'element']
    
    li.pop()
    
    'element'
    
    li
    
    ['a', 'b', 'new', 'two', 'new']
    

    5、列表操作

    li=['a','b','baidu']
    li=li+['example','new']
    
    li
    
    ['a', 'b', 'baidu', 'example', 'new']
    
    li+=['two']
    li
    
    ['a', 'b', 'baidu', 'example', 'new', 'two']
    
    li=[1,2]*3
    li
    
    [1, 2, 1, 2, 1, 2]
    

    一次指定多个变量值

    v=('a','b','e')
    (x,y,z)=v
    
    x
    
    'a'
    
    y
    
    'b'
    
    z
    
    'e'
    
    (MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY)=range(7)
    
    MONDAY
    
    0
    

    格式化字符串

    Python支持将值格式化成字符串,我们简单的来讲一下。
    %s可以表示字符串
    %d可以表示数字
    %f可以表示浮点数

    k='uid'
    v='sa'
    "%s=%s" % (k,v)
    
    'uid=sa'
    
    uid='sa'
    pwd='secret'
    print(pwd+' is not a good password for '+uid)
    
    secret is not a good password for sa
    
    print('%s is not a good password for %s' %(pwd,uid))
    
    secret is not a good password for sa
    
    userCount=6
    print('Users connected: %d' % (userCount))
    
    Users connected: 6
    
    print('Users connected: '+userCount)
    
    ---------------------------------------------------------------------------
    
    TypeError                                 Traceback (most recent call last)
    
    <ipython-input-5-adf6ef102961> in <module>()
    ----> 1 print('Users connected: '+userCount)
    
    
    TypeError: Can't convert 'int' object to str implicitly
    
    print("Today's stock price: %f" % 50.4625)
    
    Today's stock price: 50.462500
    
    print("Today's stock price: %.2f" % 50.4625)
    
    Today's stock price: 50.46
    
    print("change since yesterday: %+.2f" % 1.5)#+号表示需要输出数字的符号
    
    change since yesterday: +1.50
    

    列表映射mapping list

    这大概是python中最具有威力的特征了,可以对列表有很好的理解。

    列表表达式

    li=[1,9,8,4]
    [ele*2 for ele in li]#输出一个新的列表,从旧的列表中得到元素
    
    [2, 18, 16, 8]
    
    params={'server':'mpilgrim','database':'master','uid':'sa','pwd':'secret'}
    params.keys()#可以从字典中获取列表,或者相互转化
    
    dict_keys(['uid', 'server', 'database', 'pwd'])
    
    params.values()
    
    dict_values(['sa', 'mpilgrim', 'master', 'secret'])
    
    params.items()
    
    dict_items([('uid', 'sa'), ('server', 'mpilgrim'), ('database', 'master'), ('pwd', 'secret')])
    
    [k for k,v in params.items()]
    
    ['uid', 'server', 'database', 'pwd']
    
    [v for k,v in params.items()]
    
    ['sa', 'mpilgrim', 'master', 'secret']
    
    ['%s=%s' % (k,v) for k,v in params.items()]
    
    ['uid=sa', 'server=mpilgrim', 'database=master', 'pwd=secret']
    

    链接列表和分隔字符串

    我们可以使用join命令很简单的将字符串链接起来,但是不能链接非字符串格式的内容。
    使用split命令分隔字符串,又得到一个列表。

    ';'.join(['%s=%s' % (k,v) for k,v in params.items()])
    
    'uid=sa;server=mpilgrim;database=master;pwd=secret'
    
    s=';'.join(['%s=%s' % (k,v) for k,v in params.items()])
    s.split(';')
    
    ['uid=sa', 'server=mpilgrim', 'database=master', 'pwd=secret']
    

    元组这里我们没有讲,tuple和列表的形式差不多,但是元组一旦建立,则不能改变。

  • 相关阅读:
    C++ 类的静态数据成员&静态成员函数
    C++构造函数
    世界末日的梦
    C++ const关键词
    平安夜的礼物
    C++ 友元
    D3D中的光照
    C++网络编程(卷1):学习笔记(一)
    Python 教程阅读笔记(四):数据结构
    Python 教程阅读笔记(三):更多控制流工具
  • 原文地址:https://www.cnblogs.com/xingzhui/p/7978878.html
Copyright © 2020-2023  润新知