返回顶部
首页 > 资讯 > 后端开发 > Python >python学习_18
  • 283
分享到

python学习_18

python 2023-01-31 01:01:56 283人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

字典字典是无序的字典的key只能是不可变对象,不能是list dict创建字典创建空字典,并赋值 d = {}d["name"] = "huhongqiang"d["sex"] = "M"d["height"] = 170d{'nam

字典
字典是无序的
字典的key只能是不可变对象,不能是list dict
创建字典
创建空字典,并赋值

d = {}
d["name"] = "huhongqiang"
d["sex"] = "M"
d["height"] = 170
d
{'name': 'huhongqiang', 'sex': 'M', 'height': 170}

直接创建

d2 = {"a":1,"b":2,"c":3}
d2
{'a': 1, 'b': 2, 'c': 3}

d1={}
for k in sorted(dict.keys()):
... d={k:dict[k]}
... d1.update(d)
...
d1
{20: 'b', 200: 'a', 610: 'c'}

dict()创建字典

d = dict(name ="hhq",sex="m",schook="jx")
d
{'name': 'hhq', 'sex': 'm', 'schook': 'jx'}

参数是列表,每个列表是包含两个元素的元组

d1 = dict([("name","hhq"),("sex","m"),("school","jx")])
d1
{'name': 'hhq', 'sex': 'm', 'school': 'jx'}

d2 = dict(zip(["name","sex","schook"],["hhq","m","jx"]))
d2
{'name': 'hhq', 'sex': 'm', 'schook': 'jx'}

list(zip(["name","sex","schook"],["hhq","m","jx"]))
[('name', 'hhq'), ('sex', 'm'), ('schook', 'jx')]

dict.fromkeys(seq[,value])
序列 seq的元素作为字典的key,value作为字典的值,返回一个字典

Value为可选参数,不指定字典的值为None

lst = ["x","y","z"]
d_1 = dict.fromkeys(lst,10)
d_1
{'x': 10, 'y': 10, 'z': 10}

d_2 = dict.fromkeys(lst)
d_2
{'x': None, 'y': None, 'z': None}

访问字典的值

d["name"]
'hhq'
d["sex"]
'm'

修改字典的值>>> d
{'name': 'hhq', 'sex': 'm', 'schook': 'jx'}

d["name"] = "xxxxxxxxxx"
d
{'name': 'xxxxxxxxxx', 'sex': 'm', 'schook': 'jx'}

字典新增键值对

d["xx"] ="yy"
d
{'name': 'xxxxxxxxxx', 'sex': 'm', 'schook': 'jx', 'xx': 'yy'}

删除元素

del d["name"]

清空元素

info.clear()
info
{}

删除字典

del d
d
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined

str(dict)
输出字符串表示的字典

str(d2)
"{'name': 'hhq', 'sex': 'm', 'schook': 'jx'}"

len()求字典元素个数

遍历字典的key
dict.keys()可理解返回一个列表

可直接遍历字典名,返回key值

for k in info:
... print(k)
...
for k in info.keys():
... print(k)
...

遍历字典的value

for v in d2.values():#列表
... print(v)
...
hhq
m
jx
d2.values()
dict_values(['hhq', 'm', 'jx'])

遍历字典的键值对
返回键值对元组组成的列表

d2.items()
dict_items([('name', 'hhq'), ('sex', 'm'), ('schook', 'jx')])

字典的排序
利用sorted()函数

按照key排序,d.items()是一个列表,列表的元素是包含key、value的元组

sort_key = sorted(d.items(),key=lambda x:x[0],reverse=False)
sort_key
[('a', 5), ('b', 1), ('c', 3), ('d', 4)]
dict(sort_key)
{'a': 5, 'b': 1, 'c': 3, 'd': 4}

按照value排序

sort_value = sorted(d.items(),key=lambda x:x[1],reverse=False)
sort_value
[('b', 1), ('c', 3), ('d', 4), ('a', 5)]
dict(sort_value)
{'b': 1, 'c': 3, 'd': 4, 'a': 5}

练习:d={-1:100,-2:200,0:300,-3:200}按照key的大小顺序升序进行输出,输出key=value -3=200,-2=200,-1=100,0=300

d = {-1: 100, -2: 200, 0: 300, -3: 200}

for k in sorted(d.keys()):
print("%s=%s" %(k,d[k]),end=",")

for k,v in sorted(d.items(),key=lambda x:x[0]):
... print(str(k) + "=" + str(v),end="")
...

2.一个字符串排序,排序规则:小写<大写<奇数<偶数,
原理:先比较元组的第一个值,FALSE<TRUE,如果相等就比较元组的下一个值,以此类推。

s='9a13C85c7B24A6b'#正确的顺序应该为:abcABC135792468
lis=sorted(s,key=lambda x:(x.isdigit(),x.isdigit() and int(x)%2==0,x.isalpha() and x.isupper(),x.isalpha() and x.islower()))
s = sorted(list(s))
lst = sorted(s,key = lambda x:(x.isdigit(),x.isdigit() and int(x)%2 ==0 ,x.isalpha() and x.isupper(),x.isalpha()  and x.islower()))
print("".join(lst))

小写<大写<奇数<偶数
偶数(True,True,False,False)
奇数(True,False,False,False)
大写(False,False,True,False)
小写(False,False,False,True)

(True,False) > (False,True)
True
(1,0) > (0,1)
True
[True,False] > [False,True]
True
[True,False] > [True]
True

[True,False] > [1]
True
[True,False] > [3]
False

字典常用内置函数:
dict.get()
获取字典值,不存在返回None

d
{-1: 100, -2: 200, 0: 300, -3: 200}

d.get("a")
print(d.get("a"))
None
d.get(-1)
100

指定找不到的返回值

d.get("a","not found")
'not found'

dict.setdefault(key,value)
key值不存在,增加一个键值对,返回value值
在的话,直接返回value值

d.setdefault(-2,10)
200

d
{-1: 100, -2: 200, 0: 300, -3: 200}

d.setdefault(200,200)
200
d
{-1: 100, -2: 200, 0: 300, -3: 200, 200: 200}

小练习:生成一个字典,key 是26个小写字母a-z,value是她的acsii码
方式1:

d = {}

for k in range(97,123):
d[chr(k)] = k

print(d)

方式2:

{chr(i):i for i in range(97,123)}
{'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k
': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u
': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122}

判断元素是否存在字典

-1 in d
True

dict.update({key:value})
更新字典元素
若key 不存在 增加元素
存在 更新value的值

d = {"a":1,"b":2,"c":3}
d.update({"d":4})
d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

d.update({"a":"x"})
d
{'a': 'x', 'b': 2, 'c': 3, 'd': 4}

dict.pop(key)
返回键对应的值并删除键值对

d
{'a': 'x', 'b': 2}
d.pop("a")
'x'
d.pop(4,"not found")
'not found'

dict.popitem()
随机删除并返回键值对

d3
{'one': 1, 'two': 2}
d3.popitem()
('two', 2)
d3
{'one': 1}

--结束END--

本文标题: python学习_18

本文链接: https://lsjlt.com/news/183200.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python学习_18
    字典字典是无序的字典的key只能是不可变对象,不能是list dict创建字典创建空字典,并赋值 d = {}d["name"] = "huhongqiang"d["sex"] = "M"d["height"] = 170d{'nam...
    99+
    2023-01-31
    python
  • Python学习
    Python是创始人吉多•范罗苏姆(Guido van Rossum)在1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,而在给自己新创造的计算机语言起名字的时候,由于其是,自于七十年代风靡全球的英国六...
    99+
    2023-01-31
    Python
  • Python 学习
    第一次学习python查阅的资料一,熟悉基本在正式介绍python之前,了解下面两个基本操作对后面的学习是有好处的:1)基本的输入输出 可以在Python中使用+、-、*、/直接进行四则运算。11+3*3查看全部10(2)导入模块 使用im...
    99+
    2023-01-31
    Python
  • 学习python
    亲爱的朋友:     欢迎你!很高兴能在这里见到你,你能来到这里说明你真的很喜欢python,很想把python给学好!我觉的你很幸运,开始我学python的时候比较少资料,学起来也比较头疼,现在随着python越来越流行,资料也越来越多,...
    99+
    2023-01-31
    python
  • Python学习:Python form
    从Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。 相对基本格式化输出采用‘%’的方法,format()功能更强大,该...
    99+
    2023-01-31
    Python form
  • python学习笔记--趣学Python
    由反弹球和球拍构成的游戏。球会在屏幕上飞过来,玩家要用球拍把它弹回去 画布和画弹球 引入模块 #Tkinter -- Python的标准GUI库,Tk 接口,是python 内置的安装包 from tkinter import * i...
    99+
    2023-01-31
    学习笔记 python Python
  • python学习--DataFrame
    目录 一、DataFrame对象的创建 1、根据列表创建: 情况1:由二维列表 情况2:由元组tuple组成的列表 情况3:由字典dict组成的列表 情况4:由数组array组成的列表 情况5:由序列series组成的列表 2、根据字典创...
    99+
    2023-10-02
    python 开发语言 pandas
  • Python学习 (1)
    一、基本语法: import 与 from...import 在 python中 用import 或者from...import 来导入相应的模块。 将整个模块(somemodule)导入,格式为:import somemodule 从...
    99+
    2023-01-30
    Python
  • python学习(二)
    #浏览器GET请求,发送的参数有中文时,需要编码再拼接参数发送from urllib import requestimport urlliburl = r"http://www.baidu.com/s"#百度搜索 浏览器userage...
    99+
    2023-01-31
    python
  • Python学习day01
    age = 23 count=0 while count<3: guess_age = int (input("My age:")) if age ==guess_age: print("n...
    99+
    2023-01-30
    Python
  • python学习_1
    1.python2和python3 从宏观上讲,python2源码不标准、混乱、重复,和龟叔的理念背道而驰。 在python3上,实现了源码的统一化和标准化,去除了重复的代码。   2.编译型语言和解释型语言 编译型:一次性将所有的程序编...
    99+
    2023-01-30
    python
  • python-flask学习
    学习了一段时间python之后,因为一些现实要求和个人学习需要,所以开始对flask进行学习。找了一些博客和一本书《Flask Web开发》,书还没怎么仔细看,目前跟着博客学,还是有一些收获。下面将我觉得写的比较好的博客推荐一下。 duk...
    99+
    2023-01-30
    python flask
  • Python学习:ModuleNotFo
    最近在学《Python编程:从入门到实践》,16.2小结中 from pygal.i18n import COUNTRIES 获取两个字母的国别码,我用的pygal的版本是2.4.0(终端 pip show pygal 查看版本) 这...
    99+
    2023-01-31
    Python ModuleNotFo
  • 学习python D1
    shell脚本最擅长移动文件和替换文本,并不适合GUI界面或者游戏开发,Python是一种解释型语言,在程序开发阶段可以为你节省大量时间 Python2的用户输入需要用raw_input()而非input() python这种变量本身类...
    99+
    2023-01-31
    python
  • python学习(11)
    函数参数 位置参数传入参数顺序 、个数必须一致def add(a,b):return a + b 关键字参数 def add(a,b,c):... return a+b+c...print(add(c=1,b=2,a=3))6...
    99+
    2023-01-31
    python
  • python学习(8)
    退出双层循环:方式1:try--except try: for i in range(5): for j in range(5): if i==3 and j ==3: ...
    99+
    2023-01-31
    python
  • python学习_14
    exec(str) 可以执行多行语句,语句块,没有返回值 command = """... a= [1,2,3]... for i in a:... print(i)... """exec(command)123 a = [1...
    99+
    2023-01-31
    python
  • python学习(day3)
    1、集合的使用:#1、集合的操作: list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1)#创建集合 list_2 = set([2,6,0,22,66,8,4]) print(list_1,typ...
    99+
    2023-01-31
    python
  • python学习-dnspython
    dnspython是Python的DNS工具包。它支持几乎所有的记录类型。它可以用于查询,区域传输和动态更新。它支持TSIG认证消息和EDNS0。dnspython提供对DNS的高级和低级访问。高级别类对给定名称,类型和类的数据执行查询,并...
    99+
    2023-01-31
    python dnspython
  • python 学习day3
    set(无序不重复的序列)创建两种方式 例一:s1 = {1,2,3} 例二:s2 = set() ,s3 = set([1,2,3,4,5])功能 s2.add(123) #添加s2集合中123元素 s2.clear() #清除内容 s2...
    99+
    2023-01-31
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作