Python零基础学习6.2—Python组合数据类型(二)

这篇具有很好参考价值的文章主要介绍了Python零基础学习6.2—Python组合数据类型(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本章我们来讲解字典和集合。

下面来看例题:

第1关:字典的创建与访问

任务描述

本关任务:

(1)按格式要求分二次输入字典的所有键和对应值,将它们创建成一个学生成绩字典,输出字典

(2)查询并输出学生的姓名

(3)查询并输出学生的语文、英语成绩,如果不存在,返回"不存在"

(4)查询并输出字典中所有的值

(5)遍历字典中的元素,按格式分行输出字典元素

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入字典的键,以空格间隔:姓名 语文 数学

请输入字典对应的值,以空格间隔:张三 90 98

预期输出:

{'姓名': '张三', '语文': '90', '数学': '98'}

张三

90 不存在

dict_values(['张三', '90', '98'])

姓名 张三

语文 90

数学 98

代码解析

提示:利用zip函数创建字典

输入:d=dict(zip(['one','two','three'],[1,2,3]))

    print(d)

输出: {'one': 1, 'two': 2, 'three': 3}

keys = input("请输入字典的键,以空格间隔:")
items = input("请输入字典对应的值,以空格间隔:")
keys = keys.split()
items = items.split()
dic = dict(zip(keys,items))
print(dic)
print(dic['姓名'])
print(dic.get('语文','不存在'),dic.get('英语','不存在'))
print(dic.values())
for key,value in dic.items():
    print(f"{key} {value}")

第2关:字典元素的增加与修改

任务描述

本关任务:

(1)创建字典:已知字典的键分别为'a'、'b'、'c',对应的值从键盘输入,请利用setdefault()方法为字典增加元素。

(2)请用update()方法增加字典元素,该元素的键为'd',值为4

(3)遍历字典中的元素,按格式输出

测试说明

平台会对你编写的代码进行测试:

测试输入: 请输入三个数字,以英文逗号间隔:1,2,3

预期输出: a:1 b:2 c:3 d:4

代码解析

下面先来介绍Python字典的内置方法update()、get()和setdefault():

update()使用方法:

dict.update(dict2)

其中

  • dict2 -- 添加到指定字典dict里的字典。

该方法把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。

get()使用方法:

dict.get(key,value)

其中

  • key -- 字典中要查找的键。
  • value -- (可不填)如果指定键的值不存在时,返回该默认值

使用该方法时,将返回指定键的值,如果键不在字典中返回默认值,如果不指定默认值,则返回 None。

例如在刚才的第一关中:

dic = {'姓名': '张三', '语文': '90', '数学': '98'}
dic.get('语文','不存在')
dic.get('英语','不存在')

第二行将返回90,因为字典dic里面有“语文”这个键。而第三行将返回"不存在",因为字典dic里面没有“英语”这个键,但是我们在后面输入了参数为字符串"不存在",则将返回该字符串

setdefault()使用方法:

dict.setdefault(key, default=None)

其中

  • key -- 查找的键值。
  • default -- 键不存在时,设置的默认键值。

该方法和get()类似, 如果键不存在于字典中,将会添加键并将值设为默认值。使用该方法时,如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,其中default 默认值为 None。

关于字典中 get() 和 setdefault() 的区别:

主要在于当查找的键值 key 不存在的时候,setdefault()函数会返回默认值并更新字典,添加键值;而 get() 函数只返回默认值,并不改变原字典。

让我们回到题目:

dic1 = {}
dic2 = {'d':4}
items = input("请输入三个数字,以英文逗号间隔:")
items = items.split(",")
dic1.update(dic2)
print("a:{}".format(dic1.setdefault('a',items[0])))
print("b:{}".format(dic1.setdefault('b',items[1])))
print("c:{}".format(dic1.setdefault('c',items[2])))
print("d:{}".format(dic1['d']))

第3关:字符分类统计

任务描述

本关任务: 从键盘输入字母、数字或其它,分别统计每个字符出现的字数,并按出现的次数从大到小排序。

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入字符,字符之间以空格间隔:b b 1 1 1 2

预期输出:

1:3

b:2

2:1

代码解析

下面先介绍Python内置函数sorted()的用法:

sorted()使用方法:

sorted(iterable, key=None, reverse=False)  

其中

  • iterable -- 可迭代对象。
  • key -- (可不填)主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- (可不填)排序规则,reverse = True 降序 , reverse = False 升序(默认)。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 列表,而不是在原来的基础上进行的操作。

让我们回到题目:

chars = input("请输入字符,字符之间以空格间隔:").split()
d = {}
for c in chars:
    d[c] = d.get(c,0)+1
ls = sorted(d.items(),key=lambda x:x[1],reverse=True)
for item in ls:
    print("{}:{}".format(item[0],item[1]))

上面的第3至4行如果不好理解,也可以这样写:

for c in chars:
  if c in d:
    d[c] += 1
  else:
    d[c] = 1

上面的第6至7行有点不好理解,我们可以先来看看Python字典中的items()方法:

Python 字典 items() 方法以列表返回视图对象,是一个可遍历的key/value 对。dict.items() 返回的是一个视图对象,提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。视图对象不是列表,不支持索引,但可以使用 list() 来转换为列表。我们不能对视图对象进行任何的修改,因为字典的视图对象都是只读的。

继续以第一关为例来看看items()方法的使用:

dic = {'姓名': '张三', '语文': '90', '数学': '98'}
print(dic.items())
print(list(dic.items()))

得到的结果将会是

dict_items([('姓名', '张三'), ('语文', '90'),('数学','98')])
[('姓名', '张三'), ('语文', '90'),('数学','98')]

强制转化成列表后,列表元素都将会是元组。我们就可以通过循环来遍历每一个元组,再通过每个元组相应的索引值就可以访问每个元组当中的元素了。

这也正是第6至7行在做的事。

第4关:去重及排序

任务描述

本关任务:

输入一个数字列表,去掉列表中重复的数字,并降序输出。

测试说明

平台会对你编写的代码进行测试:

测试输入: 输入一个数字列表:[1,2,3,1,1,2,5,6]

预期输出:

6

5

3

2

1

代码解析

这一题我们可以用内置函数set()来创建一个无序不重复元素集以删除重复数据

ls=eval(input("输入一个数字列表:"))
nSet=set(ls)
list1=sorted(nSet,reverse=True)
for n in list1:
    print(n)

第5关:词频统计

任务描述

本关任务: 统计一篇英语短文中各单词出现的次数,将出现2次及以上的单词从高到低输出。 词频的输出格式为:life(2),表示单词life出现了2次。

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入英文文章:Life is too short to spend time with people who suck the happiness out of you. If someone wants you in their life, they’ll make room for you. You shouldn’t have to fight for a spot. Never, ever insist yourself to someone who continuously overlooks your worth.

预期输出:

you(4)

to(3)

life(2)

who(2)

someone(2)

for(2)

代码解析

这一题就是把前面的题所用到的一些方法的综合运用:文章来源地址https://www.toymoban.com/news/detail-758153.html

text = input("请输入英文文章:")
text = text.lower()
for x in ",.!?;:":
    text = text.replace(x,"")
text = text.split()
dic = {}
for x in text:
    dic[x] = dic.get(x,0)+1
items = sorted(dic.items(),key = lambda x:x[1],reverse = True)
for x in items:
    if x[1] >= 2:
        print(("{}({})".format(x[0],x[1])))

到了这里,关于Python零基础学习6.2—Python组合数据类型(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记_基础篇(三)_数据类型之列表

    一.基本数据类型 整数:int 字符串:str(注:t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict 注:所有的数据类型都存在想对应的类列里 二.列表所有数据类型: 基本操作: 索引 切片 追加 删除 长度 切片 循环 包含 list 三

    2024年02月12日
    浏览(35)
  • [Python物联网]Python基础知识和语法--变量和数据类型--Python快速上手开发物联网上位机程序

    目录 一、前言 二、Python变量 三、Python数据类型         1.数值类型         2.字符串类型         3.列表类型         4.元组类型         5.字典类型         6.数据类型转换         当你开始学习Python编程语言时,第一步就是了解 变量和数据类型 。变量是存储

    2024年02月04日
    浏览(43)
  • 【Python入门篇】——Python基础语法(数据类型与数据类型转换)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 数据类型 在学习字

    2024年02月02日
    浏览(38)
  • 【Python 基础篇】Python 变量与数据类型以及数据类型转换

    Python 是一种广泛应用于各个领域的高级编程语言,其灵活性和易用性使其成为众多开发者的首选。在 Python 中,变量是程序中存储数据的基本单元,而数据类型定义了变量可以存储的数据种类。此外,Python 还提供了数据类型转换的功能,可以在需要时将数据从一种类型转换为

    2024年02月10日
    浏览(33)
  • 【python基础】基本数据类型-数字类型

    视频讲解 数字类型 Python3 支持int(整型数据)、float(浮点型数据)、bool(布尔类型) 在Python 3里, 只有一种整数类型 int,表示为长整型 。像大多数语言一样,数值类型的赋值和计算都是很直观的。 编写程序如下所示: 这里需要注意的是 数值的除法运算,包含两个运算符:/ 返回

    2024年02月06日
    浏览(36)
  • 【Python基础】- 基础数据类型(下)

       🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 上文我们介绍了Python基础数据类型中的数字、布尔、字符串类型,今天主要介绍列表、元

    2024年02月09日
    浏览(25)
  • 【Python基础】- 基础数据类型(上)

       🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 ​编辑 最基本内置数据类型 Number 数字类型 数字和基本运算符 增强型赋值运算符

    2024年02月07日
    浏览(24)
  • 【Python数据类型-字典】------- PYTHON基础12

    字典(Dictionary)指一种可变的容器,这个容器可以存储任意类型的数据。 字典里的每个元素为一个键值对, 键值对 格式如下: key : value key 被称为键值,它在字典中的值是唯一的(不能重复)。 value 被称为值,它在字典中可以不唯一(可以重复)。 每个键值对用英文冒号

    2024年02月04日
    浏览(41)
  • 【Python数据类型-元组】------- PYTHON基础11

    元组与列表类似。 元组的列表最大区别是: 元组的元素是不可被修改,添加,和删除的。 元组使用 小括号 定义,而列表使用中括号定义。 输出 输出 3.1. 列表转为元组,通过内置函数tuple()实现,比如: 输出 3.2. 元组转为列表,通过内置函数list()实现 输出 4.1. 元组更新:构

    2024年02月04日
    浏览(36)
  • python爬虫_python基础数据类型

    大家好,我是yma16,本文分享关于python的基础数据类型,作为python爬虫专栏的基石。 发展历史: Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。 Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Alg

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包