python(day016——元祖、字典)

VulnHub--mrrobot Vulnhub靶场--Mr robot 靶机 阅读详情

1.元祖

元祖不能修改,没有增删改查的方法。有count和index。

>>> a=()
>>> a=(1,)
>>> type(a)
<class 'tuple'>
>>> a=1,2,3 #不写括号的方式也可以
>>> type(a)
<class 'tuple'>

>>> a=[1,2]
>>> a=tuple(a) #将list转化为元祖
>>> a
(1, 2)
  • 元祖访问、遍历(也可以切片)
>>> tup1 = ('physics', 'chemistry', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5, 6, 7 )
>>> tup1[2:4]
(1997, 2000)
>>> tup2[3]
4
>>> for i in tup1:
...      print (i)
...
physics
chemistry
1997
2000
  • 运算
>>> a=(1,2)
>>> b=(3,4)
>>> a+b
(1, 2, 3, 4)
>>> len(a)
2
>>> a*4
(1, 2, 1, 2, 1, 2, 1, 2)
>>> 1 in a
True
>>> a,b=a
>>> a
1
>>> b
2

>>> a=(1,2,3,4,5)
>>> max(a)
5
>>> min(a)
1
>>> tuple("hello")
('h', 'e', 'l', 'l', 'o')
  • 元组中的可变对象可以修改
>>> a
(1, 2, 3, 4, 5)
>>> a=(1,2,3,[1,2],5)
>>> a[3][0]=2
>>> a
(1, 2, 3, [2, 2], 5)

2.字典

key为不可变类型、不能重复。

>>> d={}
>>> type(d)
<class 'dict'>
>>> isinstance(d,dict)
True
>>> d={1:"2",2:2,3:[1,2]}
#key必须为不可变类型
>>> d["hello"]='hello'
>>> d
{1: 'hello', 2: 2, 3: [1, 2], 'hello': 'hello'}
>>> d[[1]]="e"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d[(1,)]="e"
>>> d
{1: 'hello', 2: 2, 3: [1, 2], 'hello': 'hello', (1,): 'e'}

>>> d
{'Name': 'Zara', 'Age': 7, 'Class': 'First'}
>>> d.keys()
dict_keys(['Name', 'Age', 'Class'])
>>> d.values()
dict_values(['Zara', 7, 'First'])
>>> d.items()
dict_items([('Name', 'Zara'), ('Age', 7), ('Class', 'First')])
  • 利用不能重复可排重,set也能排重
>>> a=[1,2,3,1,2,3,3]
>>> d={}
>>> for i in a:
...    d[i]=i
...
>>> d
{1: 1, 2: 2, 3: 3}
>>> list(d.keys())
[1, 2, 3]
>>> set(a)
{1, 2, 3}
  • 练习:统计其中所有的数字出现的次数
s="I am a 19 years old,you are 10!"
#请统计所有的数字出现的次数,用字典储存

result={}
for i in s:
    if i>="0" and i<="9" :
        if i in result.keys():
            result[i]+=1
        else:
            result[i]=1
print(result)

#结果:
#{'1': 2, '9': 1, '0': 1}
import string
s="I am a 19 years old,you are 10! 19years,123 years!"
#请统计所有的数字出现的次数,用字典储存
new_s=""
for i in s:
    if i in string.digits:  #都将字母和字符串都转化为空格,排除干扰
        new_s+=i
    else:
        new_s+=" "
print(new_s)
result={}
for i in new_s.split():
    if i.isdigit() :
        if i in result.keys():
            result[i]+=1
        else:
            result[i]=1
print(result)

#结果:
#{'19': 2, '10': 1, '123': 1}
  • 字典删除
>>> d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
>>> del d["Name"]  #删除单一元素
>>> d
{'Age': 7, 'Class': 'First'}
>>> d.clear()  #清空所有内容
>>> d
{}
>>> del d  #删除元祖
>>> d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined

练习:

d={"a0":100,"b1":200,"c":"300"}
#统计一下一同出现多少个0
s=str(d)
new_s=list(s)
d={}
for i in new_s:
    if i  in d.keys():
        if i =="0":
            d[i]+=1
    else:
        d[i]=1
print(d["0"])
print(d)


#print(str(d).count("0"))

'''
d={"a0":100,"b1":200,"c":"300"}
#统计一下一同出现多少个0
s=str(d)
new_s=list(s)
result=0
for i in new_s:
    if i =="0":
        result+=1
print(result)
'''
  • 字典排序:字典没有排序,是散列。

字典的查找比list快,哈希算法。


sorted(iterable [, key[, reverse]] )

(1)iterable:是可迭代类型类型;

(2)key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;

(3)reverse:排序规则. reverse = True 或者 reverse = False,有默认值,默认为升序排列(False)。


#一个字符串排序,排序规则:小写<大写<奇数<偶数。
# 原理:先比较元组的第一个值,FALSE<TRUE,如果相等就比较元组的下一个值,以此类推。
# 先看一下Boolean value 的排序:
# print(sorted([True,Flase]))===>结果[False,True]
# Boolean 的排序会将 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()))
print(''.join(lis))

# 1.x.isdigit()的作用是把数字放在前边,字母放在后边.
# 2.x.isdigit() and int(x) % 2 == 0的作用是保证奇数在前,偶数在后。
# 3.x.isupper()的作用是在前面基础上,保证字母小写在前大写在后.
# 4.最后的x表示在前面基础上,对所有类别数字或字母排序。

字典常用函数

>>> d={"1":"a","2":"b","3":"c"}
>>> print (d.get("1","key not found"))
a
>>> print(d.get("4"))
None
>>> print(d.get("4","hello")) #存在则返回值,不存在返回None,或提示
hello


>>> d={"1":"a","2":"b","3":"c"}
>>> d.setdefault("1","xx") #存在即返回
'a'
>>> d.setdefault("4","d")  #若字典中的key不存在,则生成key,并使用默认值赋值
'd'
>>> print (d)
{'1': 'a', '2': 'b', '3': 'c', '4': 'd'}
>>> d=dict(red=1,blue=2) #快速创建字典
>>> d
{'red': 1, 'blue': 2}
>>> data=dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> data
{'one': 1, 'two': 2, 'three': 3}
>>> data=dict([('one', 1), ('two', 2), ('three', 3)])
>>> data
{'one': 1, 'two': 2, 'three': 3}

>>> d=d.fromkeys([1,2,3])  #用fromkeys创建字典
>>> d
{1: None, 2: None, 3: None}
>>> d=d.fromkeys([1,2,3],"x")
>>> d
{1: 'x', 2: 'x', 3: 'x'}
>>> d=dict([(1,"a"),(2,"b")])
>>> d
{1: 'a', 2: 'b'}
>>> d.update({1:"XX"})  #update,若key存在,则直接更新key对应的value
>>> d
{1: 'XX', 2: 'b'}
>>> d.update({10:"XX"}) #若不存在key,则增加key和value
>>> d
{1: 'XX', 2: 'b', 10: 'XX'}

>>> a={1:'a',2:"b",3:"c"}
>>> print (a.popitem())   #popitem 随机返回并删除字典中的一对键和值。
(3, 'c')
>>> print (a)
{1: 'a', 2: 'b'}
>>> a={1:'a',2:"b",3:"c"}
>>> print (a.popitem())
(3, 'c')
>>> print (a)
{1: 'a', 2: 'b'}
>>> a={1:"a",2:"b",3:"c"}
>>> print (a.pop(1))
a
>>> print (a.pop(4,"default value")) 
#删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
default value
>>> print (a)
{2: 'b', 3: 'c'}

练习:图书馆

welcome_info="""
欢迎使用图书馆系统
读书改变命运!
可以输入命令:
edit/list/exit

"""

def show_welcome_info():
    global welcome_info
    print(welcome_info)

def edit_book_info():
    global books_info
    global no
    no+=1
    book_id=no
    books_info[book_id]={}
    book_name=input("请输入图书名字:")
    book_author=input("请输入作者名字:")
    books_info[book_id]["book_name"]=book_name
    books_info[book_id]["book_author"]=book_author

def get_all_books_info():
    global books_info
    for key,value in books_info.items():
        print("书的编号:",key)
        print("书的名字:",value["book_name"])
        print("书的作者:",value["book_author"])
        print("*"*20)

no=0
books_info={} #存书

edit_book_info()
edit_book_info()

get_all_books_info()

print(books_info)

"""
show_welcome_info() #调用欢迎语
while 1:
    command =input("请输入你的命令:")
    if command == "edit":
        edit_book_info()
    elif command=="list":
        get_all_books_info()
    elif command =="exit":
        break

"""


 

 

 

 

 

 

Android Framework WMS面试题及参考答案 什么是 WindowManagerService(WMS)?它的作用是什么? WindowManagerService(WMS)是 Android 系统中非常重要的一个系统服务。它运行在系统进程(system_server 进程)中。 从本质上来说,WMS 是 Android 窗口管理系统的核心。它负责管理系统中的所有窗口,包括应用程序窗口、系统窗口(如状态栏、导航栏)等。 它的主要作用有很多。首先是窗口的创建和销毁。当一个应用请求创建一个窗口时,WMS 会协调各个模块完成窗口的创建工 阅读详情

相关推荐

R语言pls包实战:手把手教你用偏最小二乘(PLS)搞定高维数据回归(附完整代码与数据标准化避坑指南)

本文详细介绍了如何使用R语言的pls包进行偏最小二乘(PLS)回归分析,特别针对高维数据回归问题。通过完整的代码示例和数据标准化避坑指南,帮助读者掌握从数据预处理到模型优化的全流程,解决实际应用中的常见问题。

weixin_42662605的博客 351

Python基础(笔记)

目录 Tips 汉字 多行语句 空行 isinstance(object, classinfo)与type(abject) 编码方式 一些python内置函数 关于pip pip本体 关于pip-review(分叉pip-tools,用来升级包) 关于wheel文件 import 与 from......import 目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包 __name__属性 导入模块 Python 标识符 Python算术运算符 //.

xuepydexiaocaiji的博客 458

Jenkins Job DSL:用代码管理CI/CD配置的实践指南

Jenkins 是持续集成(CI)领域的经典开源平台,其核心价值在于自动化构建与交付流程。然而传统 UI 配置方式导致配置不可版本化、难以复现、审计困难,严重制约团队规模化协作效率。Job DSL 作为一种声明式配置即代码(IaC)方案,通过 Groovy 脚本驱动 Jenkins 内部 API,实现 Job、View、Folder 等资源的程序化创建与维护,天然支持 Git 版本控制、权限审计与环境一致性保障。它不替代 Pipeline,而是与其协同构成‘流程定义’与‘基础设施定义’双轨体系,显著提升 C

weixin_33744141的博客 519

python数据结构及用法

文章目录基本数据结构及用法1.字符串str2.列表list3.元组tuple4.集合set5.栈stack6.队列queue7.字典dict8.堆heapq 基本数据结构及用法 1.字符串str 字符串常用方法: replace('原字符',‘新字符’) 字符替换(注意需要创建新的字符串) [start : end : step] 可切片 字符串.split('分割字符') '连接符号'.join(需要连接的字符串) 字符串.find(‘指定字符串’) 第一次出现指定字符串的位置 字符串.rfind(‘指

打瞌睡_的博客 483

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

ServiceNow Discovery & CMDB Interview Questions and Answers (2025)

【代码】ServiceNow Discovery & CMDB Interview Questions and Answers (2025)

weixin_47584092的博客 910

python学习-------序列

1.字符串 string.capitalize() 把字符串的第一个字符大写 string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 string.count(str, beg=0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str ...

qq_43719634的博客 166

智能问数产品背后的Agent技术揭秘:从任务分解到工具调用的完整流程

本文深入解析智能问数产品背后的Agent技术,从任务分解到工具调用的完整流程。通过大模型驱动的语义理解和动态工具调度,Agent系统能高效处理复杂数据分析需求,显著提升响应速度和准确率。文章详细介绍了模块化架构、任务分解机制、动态工具调用及双通道记忆系统等核心技术,展示了大模型时代的新型数据分析范式。

weixin_30399821的博客 439

Python笔记三(元组、列表、字典常用方法)

一,元组常用方法 index():返回指定元素在元组中的索引,有多个,则只返回第一个 count() :返回指定元素在元组中的数量 二,列表常用方法 index():返回指定元素在列表中的索引 count():返回指定元素在列表中的数量 clear():清空列表 remove():删除列表中指定的元素,如果元素存在多个,则只删除第一个匹配的元素 pop():根据索引删除列表元素,默认从最后一个索引位置开始删除 append():在列表的末尾追加一个元素 insert(index,obj):在列表的指定位

weixin_44371927的博客 822

CMake教程:C++ CMake自定义find_package并在其它项目使用

find_package 是 CMake 中一个非常重要的命令,用于在系统中找到外部库或包,并将其包含到项目中。: 要查找的包的名称。[version]: 可选的版本号。如果指定了版本号,CMake 会尝试找到该版本或更高版本的包。[REQUIRED]: 如果指定了这个关键字,找不到包时会产生一个错误并终止配置过程。: 指定要查找的包的组件。: 指定可选的组件,即使找不到这些组件,配置过程也会继续。: 指定查找包的模式,CONFIG表示查找配置文件,MODULE表示查找模块文件。

琅嬛福地 1563

基于 Simulink 的单相 PWM 整流器(四象限变流器)在高铁辅助电源系统中的建模与仿真实战教程

这是一份基于 Simulink 的实战教程。在高铁牵引供电与辅助电源系统中,单相 PWM 整流器(又称四象限变流器,4QC)是极其核心的“绿色电源”枢纽。传统的二极管整流器虽然结构简单,但会导致严重的输入电流畸变和低功率因数,对电网造成极大的谐波污染。而 PWM 整流器通过高频主动控制,不仅能将单相交流电转换为平稳的直流电,还能实现输入电流正弦化、单位功率因数(PF=1)运行,并支持能量双向流动(如列车再生制动时的能量回馈)。本教程将带你从数学模型出发,搭建一套高性能的电压电流双闭环控制系统。

amy_mhd的博客 47

python自动化测试学习笔记合集

python自动化测试学习笔记-1 一、什么是自动化 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。直白的就是为了节省人力、时间或硬件资源,提高测试效率,便引入了通过软件或程序自动化执行测试用例进行测试; 二、python简介 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 我们先来看一各种编程语言的类型。 机器语言:是指一台计算机全部的指令集合,计算机所使用的是由"0"和"1"组成的二进制数,二进制是计算计算机语言机的语言的基础。 编译型语言:将源代.

Yanan990830的博客 5337

FPGA 学习笔记:Vitis IDE launch failed 的解决方法

FPGA 学习笔记:Vitis IDE launch failed 的解决方法

坚韧与专注 1万+

day5 列表的增删改查

1,列表的增删改查,其他操作。2,元祖。3,列表的嵌套操作。4,开一点dict。 昨日内容回顾: 字符串的方法:1,find通过元素找索引,可切片,找不到返回-12,index,找不到报错。3,split 由字符串分割成列表,默认按空格。4,captalize 首字母大写,其他字母小写。5,upper 全大写。6,lower 全小写。7,title,每个单词的首字母大写。8,startswit...

weixin_30847865的博客 108

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

reverse()函数、sorted()函数和sort()函数

a.reverse()函数原地反转,不具备排序功能,而且没有返回值 >>> a=[1,2,3,2,4] >>> print(a.reverse()) #将a列表进行原地反转 None >>> a [4, 2, 3, 2, 1] sorted(a)函数默认是升序,有返回值,原来的列表不受影响 reverse=True降序 , reve...

weixin_44232308的博客 4905

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python 中 关于reverse() 和 reversed()的用法介绍

转自:https://blog.youkuaiyun.com/gymaisyl/article/details/83785853 reverse(): 是python中列表的一个内置方法(也就是说,在字典,字符串或者元组中,是没有这个内置方法的),用于列表中数据的反转; exp: lista = [1, 2, 3, 4] lista.reverse() print(lista) 打印结果: [4...

qq_40801709的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

python(day018——字符串4)

1.replace() :方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。 >>> s="hello world" >>> s.replace("world","Lily") 'hello Lily' >>> s.replace("l","*") 'he**o wor*d' 2.expandtabs():把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认

Teeeeesting的博客 456

python(day019——字符串练习)

1.实现lower函数 import string def lower_word(a): if not isinstance(a,str): return None result="" for i in a: if i in string.ascii_uppercase: result+=chr(ord(i)+32) #result+=i.lower() else:

Teeeeesting的博客 442

python(day022——文件操作2)

1.文件读取:fp.read() https://www.runoob.com/python/python-func-open.html 模式 描述 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 w 打开一个文件只用

Teeeeesting的博客 364

python(day017——字符串3)

1.字符串判断 >>> s="你好" >>> type(s) <class 'str'> >>> isinstance(s,(str,bytes)) True >>> def add(a,b): ... if (not isinstance(a,str)) or (not isinstance(b,str)): ... return None ... return a+b ... &g

Teeeeesting的博客 333

python(day020——异常1)

1.try print(1) try: a=1/0 print("***********") except:#拦截所有出现的异常错误,除了语法错误 #如果出现异常,则拦截后面语句,直接跳转执行except print("some error occur!") print(2) print(1) try: a = 1 print("***********") except: # 如果try中没有异常错误发生,则不执行except p.

Teeeeesting的博客 314

python(day023——文件和目录操作3)

1.读写 "w+":打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 >>> fp=open("aa.txt","w+") >>> fp.write("好好学习\n") 5 >>> fp.write("天天向上\n") 5 >>> fp.seek(0,0) 0 >>> fp.readline() '好好学习\n' >>> fp

Teeeeesting的博客 273

python(day021——文件1)

1.文件操作:读、写、追加 读:open(参数1:文件路径,参数2:打开模式,参数3:文件编码) 文件路径: 相对路径:在E盘下a.txt 绝对路径:e:\\test\\a.txt fp.close() fp=open("e:\\b.txt",encoding="gbk") content=fp.read() fp.close() print(content) 2.读的时候处理文件状态: import os if os.path.exists("e:\\axxxxx.txt"):

Teeeeesting的博客 243

python(day031——面向对象4)

1.判断类之间的关系 使用issubclass()或者isinstance()方法来检测类之间的关系。如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回True,否则返回False。 2.多重继承 class House: def __init__(self,length,width,height): self.length=length self.width=width self.height=height

Teeeeesting的博客 242

python(day027——集合、时间、类)

1.集合 会过滤掉重复内容。set内元素没有顺序,不能用序号取值。 >>> a=set("hello") >>> a {'o', 'e', 'l', 'h'} >>> set((1,2,3)) {1, 2, 3} >>> a.add("abc") #集合的增加 >>> a {'h', 'o', 'e', 'abc', 'l'} >>> a.update("abc") #集合的增加 >

Teeeeesting的博客 240

python(day025——文件和目录操作4)

练习: #将两个list,连接[(1,4),(2,5),(3,6)]:l1=[1,2,3] l2=[4,5,6] l1=[1,2,3] l2=[4,5,6] l=[] for i in range(3): t=(l1[i],l2[i]) l.append(t) print(l) #生成二维数组[[0,1,2],[3,4,5],[6,7,8]] result=[] flag=[] for i in range(9): flag.append(i) if len(flag

Teeeeesting的博客 237
上一篇: python(day015——列表2)
下一篇: python(day017——字符串3)
王总总
博客等级 码龄8年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值