Python学习(004)-字典{}

特点:

无序状态

键唯一

不可变类型:字符串、整型、元组

可变类型:列表、字典

字典创建

第一种:

dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
print(dic1[‘name‘])    ---------------->Nick

第二种:

dic2=dict(((‘name‘,‘Nick‘),(‘age‘,18)))
print(dic2)    ---------------------->{‘name‘: ‘Nick‘, ‘age‘: 18}

第三种:

dic3=dict([[‘name‘,‘Nick‘],[‘age‘,18]])
print(dic3)   ------------->{‘name‘: ‘Nick‘, ‘age‘: 18}

1.新增

键有则修改,无则新增

如:

dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
dic1[‘num‘]=15755055016
print(dic1)  ------>{‘name‘: ‘Nick‘, ‘age‘: ‘18‘, ‘sex‘: ‘man‘, ‘num‘: 15755055016}
dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
dic1[‘age‘]=15
print(dic1)  ------->{‘name‘: ‘Nick‘, ‘age‘: 15, ‘sex‘: ‘man‘}
setdefault方式键存在,则不做动作键不存在,则在字典中新增如:键存在:
dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
dic1.setdefault(‘age‘,34)
print(dic1)   --------->{‘name‘: ‘Nick‘, ‘age‘: ‘18‘, ‘sex‘: ‘man‘}

键不存在:

dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
dic1.setdefault(‘num‘,15755055016)
print(dic1)   ------------>{‘name‘: ‘Nick‘, ‘age‘: ‘18‘, ‘sex‘: ‘man‘, ‘num‘: 15755055016}

setdefault是有返回值的

返回值中,若在原字典中新增了数据,则返回新增的值
若原字典存在这个键,则返回原字典的值
如:
新增

dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
b=dic1.setdefault(‘num‘,15755055016)
print(b)  --------->15755055016

键存在

dic1={‘name‘:‘Nick‘,"age":‘18‘,‘sex‘:‘man‘}
b=dic1.setdefault(‘age‘,24)
print(b)  -------->18

2.查
通过键去查询值

print(dic1[‘name‘])

打印字典中所有的键

dic1.keys() ------>dict_keys([‘name‘, ‘age‘, ‘sex‘])

结果非列表类型,若想要列表输出,需要转化

list(dic1.keys()) -------->[‘name‘, ‘age‘, ‘sex‘]

3.改
dic1更新dic,有的会被覆盖,没有的会被新增

dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
dic2=dict(((‘name‘,‘Nick‘),(‘age‘,19),(‘num‘,15755055016)))
dic1.update(dic2)
print(dic1)  --------->{‘name‘: ‘Nick‘, ‘age‘: 19, ‘sex‘: ‘man‘, ‘num‘: 15755055016}
print(dic2)  --------->{‘name‘: ‘Nick‘, ‘age‘: 19, ‘num‘: 15755055016}
4.删删除字典中指定键值对


dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
del dic1[‘name‘]
print(dic1)  ------>{‘age‘: 18, ‘sex‘: ‘man‘}

删除字典中指定键值对,会有返回值
dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
a=dic1.pop(‘age‘)
print(a)  ------>18
清空整个字典
dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
dic1.clear()
print(dic1)  ------>{}      表示字典内的键值对被清空,但该字典仍然在内存中

随机删除键值对

dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
a=dic1.popitem()
print(a,dic1)  -------->(‘sex‘, ‘man‘) {‘name‘: ‘Nick‘, ‘age‘: 18}
删除字典
dic1={‘name‘:‘Nick‘,"age":18,‘sex‘:‘man‘}
del dic1
print(dic1)  ------->报错,因为dic1字典被删除,不存在了
5.其他操作涉及的方法
dic=dict.fromkeys([‘host1‘,‘host2‘,‘host3‘],‘name‘)
print(dic)------>{‘host1‘: ‘name‘, ‘host2‘: ‘name‘, ‘host3‘: ‘name‘}   #新建字典方式,但存在问题,涉及深浅拷贝,这里只会浅拷贝
字典的嵌套输出时,遇到字典类型就用键,遇到列表就用位置

av_catalog = {
    "欧美":{
        "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
        "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
        "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
        "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
    },
    "日韩":{
        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    },
    "大陆":{
        "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    }
}
av_catalog[‘欧美‘]["www.youporn.com"][1]=‘高清‘
print(av_catalog)   ------>可修改成功

排序    (依据键值进行排序)
dic={‘2‘:‘555‘,‘4‘:‘666‘,‘1‘:‘111‘,‘3‘:‘222‘}
print(sorted(dic))   ---->[‘1‘, ‘2‘, ‘3‘, ‘4‘]
print(sorted(dic.values()))   ------>[‘111‘, ‘222‘, ‘555‘, ‘666‘]
print(sorted(dic.items()))    ------>[(‘1‘, ‘111‘), (‘2‘, ‘555‘), (‘3‘, ‘222‘), (‘4‘, ‘666‘)]
遍历打印键
for i in dic1:
print(i)   ------>name age sex
打印键与值
print(i,dic1(i))   
name Nickage 18sex man                  直接快速高效的方法或
for i,v in dic1.items():
    print(i,v)

name Nickage 18sex man                          需要转换,耽误时间,效率低

打印键值对
for i in dic1.items():
    print(i)    ------>
(‘name‘, ‘Nick‘)
(‘age‘, 18)
(‘sex‘, ‘man‘)

原文地址:https://www.cnblogs.com/Nick1994/p/9636111.html

时间: 2024-11-10 13:54:11

Python学习(004)-字典{}的相关文章

Python学习:字典(dictionary)

dictionary是python内置数据结构中最灵活的.列表list是有序的对象集合,而dictionary是无序的集合.最主要的差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 可变长,异构,任意嵌套.字典可以在原处修改,但不支持用于字符串和列表中的序列操作.因为字典是无序的集合,所以根据固定顺序进行操作是行不通的. 1.dictionary的构造: D={}        #空字典 D = {'spam':2, 'ham':1, 'eggs':3}    #三项目字典 D =

python学习05——字典

笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件和另外一个东西关联. 2. 列表是有顺序的:字典是无序的.(上一节有提到) 本节的代码如下: 1 class Song(object): 2 3 def _init_(self, lyrics): 4 self.lyrics = lyrics 5 6 def sing_me_a_song(self)

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2

python学习笔记字典(四)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 创建字典:  = {::} sh

python 学习分享-字典篇

python字典(Dictionary) dict是无序的 key必须是唯一切不可变的 a={'key1':'value1','key2':'value2'} 字典的增删改查 a['key3']='value3'#在a这个字典里加入新的元素'key3':'value3' del a['key1']#删除a字典中的'key1':'value1' a.clear() # 清空词典所有条目 del a # 删除词典 a['key2']='value2_new'#将key2的值改为'value2_new

python学习之字典

#coding:utf-8__author__ = 'Administrator'from copy import deepcopy#字典由多个键及其对应的值构建的对组成,键是唯一的,值并不唯一phonebook={'lyq':6589,'ming':9878,'tong':4586}#1.dict函数,可以用来通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典item=[('nn','bb'),('age',89)]d=dict(item)print ddd=dict(name='

python学习:字典排序

按字典值排序 按照字典value排序,类似sort -k 命令 import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) In [38]: sorted_x Out[38]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] sorted_y = sorted(x.iteritems(), key=operator.it

Python学习笔记-字典

字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数来创建字典. len(d)d中项的数量.d[k]返回关联到键的值,d[k] = v给键赋值,del d[k]删除键k,k in d是否含有键k. 键类型,自动添加,成员资格. 字典的格式化字符串. 方法: 1.clear清除字典中所有的项.在原地操作. 2.copy浅复制,改变值对原数据无影响,删除