zoukankan      html  css  js  c++  java
  • (Python)元祖、字典

    本节将学习元组、字典,以及其他涉及到的相关知识


    1.元组 (tuple)


       元组由圆括号括起来,元素之间用逗号相隔。元组是不可变对象,一旦定义了,就不能更改

    >>> t=('a','b','c')
    >>> t[1]
    'b'
    >>> t[1]=4
    
    Traceback (most recent call last):
      File "<pyshell#27>", line 1, in <module>
        t[1]=4
    TypeError: 'tuple' object does not support item assignment

      元组只有tuple.index() 和tuple.count() 两个方法。

      tuple.index(x)  返回元组中第一个元素值为x的索引

      tuple.count(x) 统计并返回元组中元素值为x的个数

    >>> t=('a','b','c','c',1,2)
    >>> t.index('c')
    2
    >>> t.index(1)
    4
    >>> t.count('c')
    2
    >>> t.count(1)
    1

      定义元组可以使用以下方法:

    >>> t='x','y',1,2,3
    >>> t
    ('x', 'y', 1, 2, 3)
    >>> t='122334',
    >>> t
    ('122334',)
    >>> len(t)
    1

     元组的其他用法:

    >>> t=123,234,'asss'
    >>> x,y,z=t
    >>> x
    123
    >>> y
    234
    >>> z
    'asss'
    >>> t
    (123, 234, 'asss')
    >>> for i in t:
        print i
    
        
    123
    234
    asss
    >>> u=t,(1,2,3)
    >>> u
    ((123, 234, 'asss'), (1, 2, 3))

    2.字典(dict)


    字典是由{key1:value,key2:value}形式组成。字典是可变的对象。key值必须唯一。 字典是不能通过像列表那样用排好序的数字来索引的,必须通过key来引用某个值,并且是没有先后顺序的。

    以下是字典的使用例子:

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> d['name']
    'Jack'
    >>> d['age']
    10
    >>> for i in d.keys():
        print d[i]
    
        
    10
    Jack
    feman

    字典不能直接通过key,新增一个key:value

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> d['address':'china']
    
    Traceback (most recent call last):
      File "<pyshell#69>", line 1, in <module>
        d['address':'china']
    TypeError: unhashable type

    字典能通过已有的key,更改该key的value值:

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> d['age']=20
    >>> d
    {'age': 20, 'name': 'Jack', 'sex': 'feman'}

    字典还能通过del函数,删除指定key:value

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> del(d['age'])
    >>> d
    {'name': 'Jack', 'sex': 'feman'}

    我们还可以通过dict() 来新建一个字典

    >>> d=dict(name='Flack',age=10,sex='man')
    >>> d
    {'age': 10, 'name': 'Flack', 'sex': 'man'}
    >>> d=dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    >>> d
    {'sape': 4139, 'jack': 4098, 'guido': 4127}
    >>> d=dict((['sape', 4139], ['guido', 4127], ['jack', 4098]))
    >>> d
    {'sape': 4139, 'jack': 4098, 'guido': 4127}

    3.字典(dict)的函数


    dict.clear() 清空字典,使字典为空。 而del(dict)是删除字典

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> d.clear()
    >>> d
    {}
    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> del(d)
    >>> d
    
    Traceback (most recent call last):
      File "<pyshell#100>", line 1, in <module>
        d
    NameError: name 'd' is not defined

    dict.copy() 复制一个和dict一样的字典

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> c=d.copy()
    >>> d.clear()
    >>> d
    {}
    >>> c
    {'age': 10, 'name': 'Jack', 'sex': 'feman'}

    dict.fromkeys(S[,v]) ,S里的元素(元素可能重复,重复的只取一个,不会报错)作为键,v作为所有键的值,v 的默认值为 None。返回一个新的字典

    >>> d={'name':'Jack','age':10,'sex':'feman'}
    >>> c=d.fromkeys('name','lirong')
    >>> c
    {'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'}
    >>> c=d.fromkeys('namee','lirong')
    >>> c
    {'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'}

    dict.get(k[,d]) 如果dict中的键k存在,取dict[k]的值,如果不存在,则取d,d默认为None

    >>> c={1:2,2:3,3:4}
    >>> print c.get(1,2)
    2
    >>> print c.get(5,2)
    2
    >>> print c.get(3,2)
    4

    dict.has_key(k) 判断dict中是否存在键k,若有,返回true,若无,返回false

    >>> c={1:2,2:3,3:4}
    >>> c.has_key(1)
    True
    >>> c.has_key(10)
    False

    dict.items() 将dict的key:value转换成元组[(key1,value1),(key2,value2)..]

    >>> c={1:2,2:3,3:4}
    >>> c.items()
    [(1, 2), (2, 3), (3, 4)]

    dict.iteritems() 将dict的key:value转换成一个迭代器

    >>> c={1:2,2:3,3:4}
    >>> f=c.iteritems()
    >>> f.next()
    (1, 2)
    >>> f.next()
    (2, 3)

    dict.iterkeys()将dict的键key转换成一个迭代器

    >>> c={1:2,2:3,3:4}
    >>> f=c.iterkeys()
    >>> f.next()
    1
    >>> f.next()
    2

     dict.itervalues() 将dict的值Value转换成一个迭代器

    >>> c={1:2,2:3,3:4}
    >>> f=c.itervalues()
    >>> f.next()
    2
    >>> f.next()
    3

    dict.keys() 以列表的形式返回dict的键

    >>> c={1:2,2:3,3:4}
    >>> c.keys()
    [1, 2, 3]

    dict.pop(k[,d]) 删除键为k的key:value,并返回value (如果k不存在,则返回d)

    >>> c={1:2,2:3,3:4}
    >>> c.pop(2,10)
    3
    >>> c.pop(3,10)
    4
    >>> c.pop(3,10)
    10

    dict.popitem() 删除键值对,并以元组的形式返回该键值对

    >>> c={1:2,2:3,3:4}
    >>> c.popitem()
    (1, 2)
    >>> c.popitem()
    (2, 3)
    >>> c.popitem()
    (3, 4)
    >>> c
    {}

    dict.setdefault(k[,d]) 返回dict[k]的值,如果键k不存在,那么该函数为会新增dict[k]=d,并且返回d

    >>> c
    {}
    >>> c.setdefault('name','lirong')
    'lirong'
    >>> c
    {'name': 'lirong'}
    >>> c.setdefault('name','test')
    'lirong'
    >>> c
    {'name': 'lirong'}

    dict.update(F) ,用迭代器或字典F来更新dict,如果F中的元素在dict中没有,则添加到dict中

    >>> c
    {'name': 'lirong'}
    >>> c.update()
    >>> c
    {'name': 'lirong'}
    >>> f={"a":1,"b":2}
    >>> c.update(f)
    >>> c
    {'a': 1, 'b': 2, 'name': 'lirong'}

     dict.values() 以列表的形式返回dict的value值

    >>> c
    {'a': 1, 'b': 2, 'name': 'lirong'}
    >>> c.values()
    [1, 2, 'lirong']
  • 相关阅读:
    重温算法第一篇:冒泡排序
    服务器报警邮件发送到QQ邮箱,但是被系统拦截
    记录MongoDB常用查询
    一次 Mysql 字符集的报错,最后让我万马奔腾!!!
    Hbase 一次表异常,有一张表 无法count scan 一直显示重连
    spark编译安装 spark 2.1.0 hadoop2.6.0-cdh5.7.0
    有一些sql 是必须要做笔记的!!
    linux 修改openfiles
    在线HTTP POST/GET接口测试工具
    HBase 官方文档中文版
  • 原文地址:https://www.cnblogs.com/Lival/p/4398365.html
Copyright © 2011-2022 走看看