python—字典

1.字典的含义:

字典和列表类似,是可变序列,与列表不同的是,字典是无序的可变序列,保存的内容是以 键值对 的形式存放的。键是唯一的,而值可以是多个。值可以取任意数据了类型,但键必须是不可变的。
创建一个字典:
1 . 定义字典时,每个元素都包含两个部分“键(key)“和“值(value)“。
2 . 创建字典时,在键(key)和值(value)只见用冒号分隔,相邻两个元素用逗号分隔,所有元素用大括号括起来。
例如:

dic = {1: "ssh", 2: "ftp", "key": "value"}	#冒号前的为键,冒号后的为值
print(dic)运行结果:
{1: 'ssh', 2: 'ftp', 'key': 'value'}

创建一个空字典:

s = {}                  方法一
print(s)运行结果:
{}d = dict()             方法二
print(d)运行结果:
{}

字典的镶套:

student = {'123':{'name':'tom','age':18,'score':99},'456':{'name':'lily','age':19,'score':100}
}print(student['123']['name'])运行结果为:
tom

2. 字典的特征:

1 . 通过键(key)而不是通过索引来读取字典

d = {'1':'a','2':'b'
}
print(d['1'])运行结果:
a

2 . 成员操作符(针对key)

d = {'1':'a','2':'b'
}
print('1' in d)
print('1' not in d)运行结果:
True
False

3 . for循环 针对key

d = {'1':'a','2':'b'
}
for key in d:print(key)运行结果:
1
2

4 . 遍历字典,输出字典的key和对应的值

d = {'1':'a','2':'b'
}
for key in d:print(key,d[key])运行结果:
1 a
2 b

3 . 字典元素的查看、增加、删除

1 . 查看字典的值:

service = {'http':80,'ftp':23,'ssh':22
}
print(service.keys())      查看字典的key值运行结果:
dict_keys(['http', 'ftp', 'ssh'])print(service.values())         查看字典的value值运行结果:
dict_values([80, 23, 22])print(service.items())          查看字典的key-value值运行结果:
dict_items([('http', 80), ('ftp', 23), ('ssh', 22)])print(service['http'])             通过key值查找value值(key值不存在时会报错)运行结果:
80print(service.get('http'))       使用get查看key的value值,若key存在,返回对应的value值运行结果:
80print(service.get('https','443'))         若key不存在,返回None 或者设定好的默认值。运行结果:
443

2 . 字典元素的增加:

service = {'http':80,'ftp':23,'ssh':22
}
service['https'] = 443
print(service)                     如果key值不存在,则添加对应的key-value值运行结果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'https': 443}service['ftp'] = 21
print(service)                  如果key值存在,则更新对应的value值运行结果:
{'http': 80, 'ftp': 21, 'ssh': 22}service_backup = {'tomcat':8080,'mysql':3306
}
service.update(service_backup)        增加多个key值
print(service)运行结果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'tomcat': 8080, 'mysql': 3306}或者可以这样写:
service.update(flask=9000,dns=53)
print(service)运行结果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'flask': 9000, 'dns': 53}service.setdefault('http',9090)           如果key值存在:不做修改
print(service)运行结果:
{'http': 80, 'ftp': 23, 'ssh': 22}service.setdefault('oracle',44575)       如果key值不存在,则添加对应的key-value
print(service)运行结果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'oracle': 44575}

3 . 字典元素的删除:

service = {'http':80,'ftp':23,'ssh':22
}
del service['http']             删除key值和value值
print(service)运行结果:
{'ftp': 23, 'ssh': 22}item = service.pop('http')             pop删除指定key对应的value值
print(item)       如果key存在,删除,并且返回删除key对应的value(可以用变量取接收)
print(service)                      如果不存在,直接报错运行结果:
80
{'ftp': 23, 'ssh': 22}item = service.popitem()               popitem删除最后一个key-value值
print(item)
print(service)运行结果:
('ssh', 22)
{'http': 80, 'ftp': 23}service.clear()          清空字典内容
print(service)运行结果:
{}

练习:
1 . 数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;

import random
all_num = []for item in range(1000):all_num.append(random.randint(20,100))# 对生成好的1000个数进行排序,然后加到子字典里
sorted_num = sorted(all_num)
num_dict ={}for num in sorted_num:if num in num_dict:num_dict[num] += 1else:num_dict[num] = 1print(num_dict)

2 . 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和 . ;
# 1. 用户输入一句英文句子;
# 2. 打印出每个单词及其重复的次数;

s = input('s:')
# 1.把每个单词分割处理
s_li = s.split()
print(s_li)
# 通过字典存储单词和改单词出现的次数
word_dict = {}
for item in s_li:if item not in word_dict:word_dict[item] = 1else:word_dict[item] += 1
print(word_dict)

3 . 随机生成100个卡号;
1 .卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
3. 输出卡号和密码信息, 格式如下:

 卡号               密码 6102009001         000000

代码如下:

card_ids =[]
# 生成100个卡号
for i in range(100):# %.3d:代表整型数占3位s = '6102009%.3d' %(i+1)# 将每次生成的卡号都加入到列表中card_ids.append(s)card_ids_dict = {}.fromkeys(card_ids,'redhat')
# print(card_ids_dict)
print('卡号\t\t\t\t\t密码')
for key in card_ids_dict:print('%s\t\t\t%s' %(key,card_ids_dict[key]))

4 . 判断101-200之间有多少个素数,并输出所有素数

hah_li = []
for i in range(101,200):for k in range(2,i):if i%k == 0:breakelse:hah_li.append(i)
print(hah_li)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js中加“var”和不加“var”的区别,看完觉得这么多年js白学了

Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。var num 1; 是在当前域中声明变量. 如果在方法中声明&#xff0…

解决方案_智能工厂全套解决方案

最近弱电社群资料更新情况:1、弱电学习圈VIP群资料整理-希望对您有用!2、弱电学习圈VIP技术交流2群成立,欢迎您加入!3、智慧校园整体解决方案!4、智能化弱电项目管理表单大全-弱电项目经理必备!5、弱电项目…

退火算法 贪婪算法_算法贪婪策略简介

退火算法 贪婪算法介绍 (Introduction) The solution is determined by a sequence of steps each step has given a particular solution and later a complete solution to given the problem can be achieved. In short, while making a choice there should be a greed for…

windows 2008 R2系统安装拨号v p n详细配置

windows 2008 R2系统单网卡安装拨号v p n系统环境:windows 2008 R2操作步骤首先设置服务端在服务器管理器中添加角色“网络策略和访问服务”,并安装以下角色服务右击路由与远程访问,选择“配置并启用路由和远程访问”右击路由与远程访问&…

python—函数

1. 函数的定义: 1 . 含义:我们把实现某一功能的代码定义为一个函数,在需要使用时,随时调用,十分方便。对于函数,简单理解就是可以完成某功能的代码块,可反复使用。 Python提供了许多内建函数&a…

word打开老是配置进度_小白教程 | office出现配置进度框,怎么办?

最近很多同学在备考二级时候,自己的电脑上office软件Word或者Excel出问题了,每次打开都会出现配置进度框。这种情况怎么办呢?这种情况都是注册表的问题,马上安排解决之前在 右键菜单没有office新建怎么办(点击即可阅读)也是用注册…

【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...

一、写在前面 自使用android studio开始,就被它独特的依赖方式:compile com.android.support:appcompat-v7:25.0.1所深深吸引,自从有了它,麻麻再也不用担心依赖第三方jar包繁琐无趣啦。而,如果自己写一个开源库是一种怎…

scala集合中添加元素_如何在Scala中获得列表的第一个元素?

scala集合中添加元素清单 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是线性数据结构。 它是相同数据类型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python内置的一种极其强大的生成列表 list 的表达式。返回结果必须是列表。 示例: 需求1:接收变量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)运行结果:…

excel数据平均分配给多人_excel表格 怎样均分数据-用Excel怎么才能将组数据平均分配给几个人...

怎样在Excel表格中求平均数?在excel中怎样自动生成各班各科的平均成绩可以调用Excel函数库的函实现。步骤如下:1. 在单元格内点击上公式-平均值”。2. 点击需要参与计算的单元格数据,符号用键盘输入,最后回车即可。百度百科-Excel函数exce…

Java中List和Map接口之间的区别

列表与地图界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在这里,我们将看到List与Java中的Map接口有何不同,并且我们将看到以下几点, 列表界面 (…

python—高阶函数

什么是内置高阶函数: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。 Python中内置了几个常用的高阶函数,…

功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了

随着计算机硬件的不断更新换代显示设备的不断更新从原来的分辨率640 X 480啥原来分辨这么低呀?还记得DOS吗?或者Win95,win98吗当时显示器分辨率能调到800X 600很好了2000年左右随着纯平显示器的推出也有了高清显示器的概念那么一般我们说的高清显示器分辨…

nginx1.10.2源码安装配置参数参考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安装的根路径,默认为 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二进制文件的路径,默认为PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找输出程序| 套装1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定时器的运用

为什么80%的码农都做不了架构师&#xff1f;>>> 一、spring4定时器任务配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…

python—装饰器

装饰器概念&#xff1a; 把一个函数当作参数传递给一个函数&#xff0c;返回一个替代版的函数 本质上就是一个返回函数的函数 在不改变原函数的基础上&#xff0c;给函数增加功能 python 中装饰器做的事情&#xff01;它们封装一个函数&#xff0c;并且用这样或者那样的方式来修…

ad18原理图器件批量修改_Altium Designer 15原理图设计基础

Altium Designer 15成为越来越多电子设计开发工程师EDA电路设计软件的首选&#xff0c;在学校学习Altium Designer的也越来较多&#xff0c;像单片机开发学习一样&#xff0c;EDA设计只要学会了&#xff0c;再学其他的设计软件就容易多了。上一节分享了《Altium Designer 15集成…

c++freopen函数_使用示例的C语言中的freopen()函数

cfreopen函数C语言中的freopen()函数 (freopen() function in C) Prototype: 原型&#xff1a; FILE* freopen(const char *str, const char *mode, FILE *stream);Parameters: 参数&#xff1a; const char *str, const char *mode, FILE *streamReturn type: FILE* 返回类型…

python—文件

1 . 文件的基本操作&#xff1a; 文件读取三部曲&#xff1a; 打开操作关闭&#xff08;如果不关闭会占用文件描述符&#xff09; 打开文件&#xff1a; f open(/tmp/passwdd,w)操作文件&#xff1a; 1 . 读操作&#xff1a; f.read()content f.read()print(content) 2 …