Python基础(7):基本数据类型(dict)

字典(dict):

  说明:字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中 。格式:d = {key1 : value1key2 : value2 }

  示例:

    dict = {'name': 'nios', 'age': '100', 'sex': 'male'}

基本操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度
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

常用功能:

索引示例(索引值为key):

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict['name'])
print(name_dict['age'])
print(name_dict['sex'])

运行结果:
nios
100
male

无切片

 

获取所有的键:keys()

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.keys())

运行结果:
dict_keys(['name', 'age', 'sex'])

 

获取所有的值:values()

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.values())

运行结果:
dict_values(['nios', 100, 'male'])

 

获取所有的键值对:items()

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.items())

运行结果:
dict_items([('name', 'nios'), ('age', 100), ('sex', 'male')])

 

for循环示例(默认值输出key):

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
for i in name_dict:
    print(i)

运行结果:
name
age
sex

 

for循环示例(获取键,值):

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
for k in name_dict.keys():
    print(k)
print("--------------------")
for i in name_dict.values():
    print(i)
print("--------------------")
for k,i in name_dict.items():
    print(k)
    print(i)

运行结果:
name
age
sex
--------------------
nios
100
male
--------------------
name
nios
age
100
sex
male

 

字典内部提供的其他功能:

 clear(self):

  说明:删除字典内所有元素。(返回None)

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
name_dict.clear()
print(name_dict)

运行结果:
{}

 

copy(self):

  说明:暂时忽略。

 

fromkeys(*args, **kwargs):

  说明:暂时忽略。

 

get(self, k, d=None):

  说明:返回指定键的值,如果值不在字典中返回default值。 k:指定的键。d:default值,默认为无。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.get('name'))
print(name_dict.get('age'))
print(name_dict.get('sex'))
print(name_dict.get('address', 'error'))

运行结果:
nios
100
male
error

 

item(self):

  说明:以列表返回可遍历的(键, 值) 元组数组。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.items())

运行结果:
dict_items([('name', 'nios'), ('age', 100), ('sex', 'male')])

 

keys(self):

  说明:以列表返回一个字典所有的键。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.keys())

运行结果:
dict_keys(['name', 'age', 'sex'])

 

pop(self, k, d=None):

  说明:删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。k:指定的键。d:defaulet值,默认为无。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.pop('name'))
print(name_dict)

运行结果:
nios
{'age': 100, 'sex': 'male'}

 

popitem(self):

  说明:从尾部删除字典中的一对键和值。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
name_dict.popitem()
print(name_dict)

运行结果:
{'name': 'nios', 'age': 100}

 

setdefault(self, k, d=None):

  说明:暂时忽略。

 

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

  说明:把字典name_dict2的键/值对更新到name_dict1里。

name_dict1 = {'name': 'nios', 'age': 100}
name_dict2 = {'sex': 'male'}
name_dict1.update(name_dict2)
print(name_dict1)

运行结果:
{'name': 'nios', 'age': 100, 'sex': 'male'}

 

values(self):

  说明:以列表返回字典中的所有值。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
print(name_dict.values())

运行结果:
dict_values(['nios', 100, 'male'])

 

del:

  说明:删除指定索引的键值对。

name_dict = {'name': 'nios', 'age': 100, 'sex': 'male'}
del name_dict['age']
print(name_dict)

运行结果:
{'name': 'nios', 'sex': 'male'}

 

posted @ 2017-10-18 18:03  nios_Y  阅读(244)  评论(0)    收藏  举报