• 技术文章 >后端开发 >Python教程

    python元组与字典的详细介绍

    高洛峰高洛峰2017-03-20 09:45:07原创672
    一、元组

    1.元组的表达

    (1,2,3,4)
    ('olive',123)
    ("python",)

    创建元组:

    a=tuple((1,2,3,))
    b=("python",)

    2.元组功能属性

    class tuple(object):
        """
        tuple() -> empty tuple
        tuple(iterable) -> tuple initialized from iterable's items
        
        If the argument is a tuple, the return value is the same object.
        """
        def count(self, value): # real signature unknown; restored from __doc__
            """ T.count(value) -> integer -- return number of occurrences of value """
            return 0
        def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
            """
            T.index(value, [start, [stop]]) -> integer -- return first index of value.
            Raises ValueError if the value is not present.
            """
            return 0
        def __add__(self, *args, **kwargs): # real signature unknown
            """ Return self+value. """
            pass
        def __contains__(self, *args, **kwargs): # real signature unknown
            """ Return key in self. """
            pass
        def __eq__(self, *args, **kwargs): # real signature unknown
            """ Return self==value. """
            pass
        def __getattribute__(self, *args, **kwargs): # real signature unknown
            """ Return getattr(self, name). """
            pass
        def __getitem__(self, *args, **kwargs): # real signature unknown
            """ Return self[key]. """
            pass
        def __getnewargs__(self, *args, **kwargs): # real signature unknown
            pass
        def __ge__(self, *args, **kwargs): # real signature unknown
            """ Return self>=value. """
            pass
        def __gt__(self, *args, **kwargs): # real signature unknown
            """ Return self>value. """
            pass
        def __hash__(self, *args, **kwargs): # real signature unknown
            """ Return hash(self). """
            pass
        def __init__(self, seq=()): # known special case of tuple.__init__
            """
            tuple() -> empty tuple
            tuple(iterable) -> tuple initialized from iterable's items
            
            If the argument is a tuple, the return value is the same object.
            # (copied from class doc)
            """
            pass
        def __iter__(self, *args, **kwargs): # real signature unknown
            """ Implement iter(self). """
            pass
        def __len__(self, *args, **kwargs): # real signature unknown
            """ Return len(self). """
            pass
        def __le__(self, *args, **kwargs): # real signature unknown
            """ Return self<=value. """
            pass
        def __lt__(self, *args, **kwargs): # real signature unknown
            """ Return self<value. """
            pass
        def __mul__(self, *args, **kwargs): # real signature unknown
            """ Return self*value.n """
            pass
        @staticmethod # known case of __new__
        def __new__(*args, **kwargs): # real signature unknown
            """ Create and return a new object.  See help(type) for accurate signature. """
            pass
        def __ne__(self, *args, **kwargs): # real signature unknown
            """ Return self!=value. """
            pass
        def __repr__(self, *args, **kwargs): # real signature unknown
            """ Return repr(self). """
            pass
        def __rmul__(self, *args, **kwargs): # real signature unknown
            """ Return self*value. """
            pass
    tuple

    3.元组的部分功能属性介绍

    元组和列表有很大相似性,但是元组的元素是不可修改的,所以很多列表有的功能元组都没有。

    1)count(self, value):

    统计元组中包含value元素的数量,返回一个int值。

    a=(1,2,3,4,1,2,3,1,2,)
    b=a.count(1)
    print(a,type(a))
    print(b,type(b))
    #运行结果
    (1, 2, 3, 4, 1, 2, 3, 1, 2) <class 'tuple'>
    3 <class 'int'>
    demo

    2)index(self, value, start=None, stop=None):

    索引,查找元组中value元素第一个出现的位置,start与stop参数是查找起始与结束位置,默认为None,返回int数值,如果查找中不包含这个元素,则返回ValueError: 'f' is not in tuple报错。

    a=(1,2,3,4,1,2,3,1,2,)
    b=a.index(3)
    print(a,len(a))
    print(b,type(b))
    #运行结果
    (1, 2, 3, 4, 1, 2, 3, 1, 2) 9
    2 <class 'int'>
    demo

    3)add(self, *args, **kwargs):

    给元组添加一个新的元素,添加的新元素需要以元组的形式添加,生成一个新的元组。

    a=(1,2,3,4)
    b=a.__add__((5,1))   #括号理给出的必须是元组
    print(a,type(a))
    print(b,type(b))
    #运行结果
    (1, 2, 3, 4) <class 'tuple'>
    (1, 2, 3, 4, 5, 1) <class 'tuple'>
    demo

    4)contains(self, *args, **kwargs):

    判断元组中是否包含某个元素,返回布尔值。

    a=(1,2,3,4,1,2,3,1,2,)
    b=a.__contains__(2)
    c=a.__contains__(5)
    print(a)
    print(b)
    print(c)
    #运行结果
    (1, 2, 3, 4, 1, 2, 3, 1, 2)
    True
    False
    demo

    二、字典

    1.字典的表达

    {"name":"olive","age":18}

    创建字典:

    a={"name":"olive","age":18}
    b=dict({"name":"lusi","age":18})

    2.字典功能属性

    class dict(object):
        """
        dict() -> new empty dictionary
        dict(mapping) -> new dictionary initialized from a mapping object's
            (key, value) pairs
        dict(iterable) -> new dictionary initialized as if via:
            d = {}
            for k, v in iterable:
                d[k] = v
        dict(**kwargs) -> new dictionary initialized with the name=value pairs
            in the keyword argument list.  For example:  dict(one=1, two=2)
        """
        def clear(self): # real signature unknown; restored from __doc__
            """ D.clear() -> None.  Remove all items from D. """
            pass
        def copy(self): # real signature unknown; restored from __doc__
            """ D.copy() -> a shallow copy of D """
            pass
        @staticmethod # known case
        def fromkeys(*args, **kwargs): # real signature unknown
            """ Returns a new dict with keys from iterable and values equal to value. """
            pass
        def get(self, k, d=None): # real signature unknown; restored from __doc__
            """ D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. """
            pass
        def items(self): # real signature unknown; restored from __doc__
            """ D.items() -> a set-like object providing a view on D's items """
            pass
        def keys(self): # real signature unknown; restored from __doc__
            """ D.keys() -> a set-like object providing a view on D's keys """
            pass
        def pop(self, k, d=None): # real signature unknown; restored from __doc__
            """
            D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
            If key is not found, d is returned if given, otherwise KeyError is raised
            """
            pass
        def popitem(self): # real signature unknown; restored from __doc__
            """
            D.popitem() -> (k, v), remove and return some (key, value) pair as a
            2-tuple; but raise KeyError if D is empty.
            """
            pass
        def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
            """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
            pass
        def update(self, E=None, **F): # known special case of dict.update
            """
            D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
            If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
            If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
            In either case, this is followed by: for k in F:  D[k] = F[k]
            """
            pass
        def values(self): # real signature unknown; restored from __doc__
            """ D.values() -> an object providing a view on D's values """
            pass
        def __contains__(self, *args, **kwargs): # real signature unknown
            """ True if D has a key k, else False. """
            pass
        def __delitem__(self, *args, **kwargs): # real signature unknown
            """ Delete self[key]. """
            pass
        def __eq__(self, *args, **kwargs): # real signature unknown
            """ Return self==value. """
            pass
        def __getattribute__(self, *args, **kwargs): # real signature unknown
            """ Return getattr(self, name). """
            pass
        def __getitem__(self, y): # real signature unknown; restored from __doc__
            """ x.__getitem__(y) <==> x[y] """
            pass
        def __ge__(self, *args, **kwargs): # real signature unknown
            """ Return self>=value. """
            pass
        def __gt__(self, *args, **kwargs): # real signature unknown
            """ Return self>value. """
            pass
        def __init__(self, seq=None, **kwargs): # known special case of dict.__init__
            """
            dict() -> new empty dictionary
            dict(mapping) -> new dictionary initialized from a mapping object's
                (key, value) pairs
            dict(iterable) -> new dictionary initialized as if via:
                d = {}
                for k, v in iterable:
                    d[k] = v
            dict(**kwargs) -> new dictionary initialized with the name=value pairs
                in the keyword argument list.  For example:  dict(one=1, two=2)
            # (copied from class doc)
            """
            pass
        def __iter__(self, *args, **kwargs): # real signature unknown
            """ Implement iter(self). """
            pass
        def __len__(self, *args, **kwargs): # real signature unknown
            """ Return len(self). """
            pass
        def __le__(self, *args, **kwargs): # real signature unknown
            """ Return self<=value. """
            pass
        def __lt__(self, *args, **kwargs): # real signature unknown
            """ Return self<value. """
            pass
        @staticmethod # known case of __new__
        def __new__(*args, **kwargs): # real signature unknown
            """ Create and return a new object.  See help(type) for accurate signature. """
            pass
        def __ne__(self, *args, **kwargs): # real signature unknown
            """ Return self!=value. """
            pass
        def __repr__(self, *args, **kwargs): # real signature unknown
            """ Return repr(self). """
            pass
        def __setitem__(self, *args, **kwargs): # real signature unknown
            """ Set self[key] to value. """
            pass
        def __sizeof__(self): # real signature unknown; restored from __doc__
            """ D.__sizeof__() -> size of D in memory, in bytes """
            pass
        __hash__ = None
    dict

    3.字典的部分功能属性介绍
    1)clear(self):

    清除字典中的所有元素。

    a={"name":"olive","age":18}
    b=a.clear()
    print(a)
    print(b)
    #运行结果
    {}
    None

    2)copy(self):

    复制一份元组,相当于一次浅拷贝。

    a={"name": "olive","age":18}
    b=a.copy()
    print(a,id(a),id("name"))
    print(b,id(b),id("name"))
    #赋值
    c={"name": "lusi","age":18}
    d=c
    print(c,id("name"))
    print(d,id("name"))
    #浅拷贝
    e={"name": "shy","age":18}
    f=copy.copy(e)
    print(e,id(e),id("name"))
    print(f,id(f),id("name"))
    #运行结果
    {'name': 'olive', 'age': 18} 2915224 2019840
    {'name': 'olive', 'age': 18} 2915304 2019840
    {'name': 'lusi', 'age': 18} 2019840
    {'name': 'lusi', 'age': 18} 2019840
    {'name': 'shy', 'age': 18} 5584616 2019840
    {'name': 'shy', 'age': 18} 5586056 2019840

    3)fromkeys(*args, **kwargs):【fromkeys(seq,value=None)】

    创建一个新的字典,以seq为字典的keys(键),value为字典的值,默认为None。适合创建一个一样值的字典。

    a={"hunan": "changsha","guangdong":"guangzhou","jiangsu":"nanjing",'hubei':"wuhan"}
    b=dict.fromkeys(a,"good")
    c=dict.fromkeys(["a","b","c"],"abc")
    d=dict.fromkeys("abcc")           
    print(a)
    print(b)
    print(c)
    print(d)
    #运行结果
    {'guangdong': 'guangzhou', 'hubei': 'wuhan', 'hunan': 'changsha', 'jiangsu': 'nanjing'}
    {'hubei': 'good', 'guangdong': 'good', 'hunan': 'good', 'jiangsu': 'good'}
    {'c': 'abc', 'b': 'abc', 'a': 'abc'}
    {'c': None, 'b': None, 'a': None}   #seq给出的字符串c是重复的,但是创建的键只取一个。

    4)get(self, k, d=None):

    获取字典中键为k的值,如果字典中不包含k,则给出d值,d默认为None。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.get("a")
    c=a.get("e")
    d=a.get("e",5)
    print(a)
    print(b)
    print(c)
    print(d)
    #运行结果
    {'b': 2, 'a': 1, 'c': 3, 'd': 4}
    1
    None
    5

    5)items(self):

    遍历字典的一个方法,把字典中每对key和value组成一个元组,并把这些元组放在一个类似列表的dict_items中返回。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.items()
    print(a)
    print(b,type(b))
    #运行结果
    {'d': 4, 'c': 3, 'a': 1, 'b': 2}
    dict_items([('d', 4), ('c', 3), ('a', 1), ('b', 2)]) <class 'dict_items'>

    6)keys(self):

    遍历字典键keys的一个方法,返回一个类似列表的dict_keys,与items方法用法相同。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.keys()
    print(a)
    print(b,type(b))
    #运行结果
    {'b': 2, 'a': 1, 'c': 3, 'd': 4}
    dict_keys(['b', 'a', 'c', 'd']) <class 'dict_keys'>

    7)values(self):

    遍历字典值value的一个方法,返回一个类似列表的dict_values,与items方法用法相同。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.values()
    print(a)
    print(b,type(b))
    #运行结果
    {'c': 3, 'd': 4, 'b': 2, 'a': 1}
    dict_values([3, 4, 2, 1]) <class 'dict_values'>

    8)pop(self, k, d=None):

    和get方法用法相似,只不过,get是获取字典中键为k的值,而pop是取出字典中键为k的值。当字典中不含键k时,d不是默认值时,取到的值就为d值,如果d为默认值None时,则KeyError报错。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.pop("a")
    c=a.pop("e","five")
    print(a)
    print(b,type(b))
    print(c,type(c))
    #运行结果
    {'c': 3, 'd': 4, 'b': 2}
    1 <class 'int'>
    five <class 'str'>

    9)popitem(self):

    从字典中随机取出一组键值,返回一个新的元组。如果字典中无键值可取,则KeyError报错。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.popitem()
    print(a)
    print(b,type(b))
    #运行结果
    {'d': 4, 'b': 2, 'a': 1}
    ('c', 3) <class 'tuple'>

    10)setdefault(self, k, d=None):

    从字典中获取键为k的值,当字典中包含键k值时,功能和get基本一致,当字典中不包含键k值时,在原字典上添加上键为k的初始键值对,并返回值d。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.setdefault("a")
    c=a.setdefault("e")
    d=a.setdefault("f",6)
    print(a)
    print(b)
    print(c)
    print(d)
    #运行结果
    {'f': 6, 'c': 3, 'a': 1, 'e': None, 'b': 2, 'd': 4}
    1
    None
    6

    11)update(self, E=None, **F):

    给字典新增元素,没有返回值。用法:dict.update(dict2)。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.update({"e":5})
    print(a)
    print(b)
    #运行结果
    {'c': 3, 'b': 2, 'd': 4, 'a': 1, 'e': 5}
    None

    12)contains(self, *args, **kwargs):

    判断列表中是否包含某个键值对,返回布尔值。用法:dict.contains(keys)。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.__contains__("a")
    print(a)
    print(b)
    #运行结果
    {'a': 1, 'd': 4, 'c': 3, 'b': 2}
    True

    13)delitem(self, *args, **kwargs):

    删除字典中的某个键值对,没有返回值。用法:dict.delitem(keys)。

    a={"a":1,"b":2,"c":3,"d":4}
    b=a.__delitem__("a")
    print(a)
    print(b)
    #运行结果
    {'c': 3, 'b': 2, 'd': 4}
    None

    以上就是python元组与字典的详细介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 元组 字典
    上一篇:django进阶学习记录 下一篇:详解Python中的字符串与字符编码介绍
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 实例讲解Python批量修改文件名• Python实例详解pdfplumber读取PDF写入Excel• 归纳总结Python中的装饰器知识点• python中API调用的详解与示例• 手把手教你在Python使用plot()函数画图
    1/1

    PHP中文网