问题

使用给定的整数n,编写程序以生成包含(i,i * i)的字典,该字典为1到n之间的整数(都包括在内)。然后程序应打印字典。

假设输入:8
然后,输出应为:{1:1、2:4、3:9、4:16、5:25、6:36、7:49、8:64}

提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
考虑使用dict()

我所编写的程序

def zidian(n):     #由于第二例我直接用的for循环跟原答案比太低端了,而且我认为应该锻炼一下运用函数的能力,所以我使用了函数l = {}      #创建一个空字典for i in range(n):   #利用for循环为字典添加键值对l[i+1] = (i+1)*(i+1)return l         #直接返回值到调用的地方
n = int(input('请输入数字:'))
print(zidian(n))

原问题答案

n=int(raw_input())
d=dict()
for i in range(1,n+1):d[i]=i*i
print d

在这里用到了dict()函数,dict()函数是用来创建字典的,那么具体的用法是什么呢?

语法:dict(key/value)
key/value – 用于创建字典的键/值对,此处可以表示键/值对的方法有很多,具体可参考下方示例。

eg:

dict0 = dict()  # 传一个空字典
print('dict0:', dict0)
输出:dict0: {}
dict1 = dict({'three': 3, 'four': 4})  # 传入一个字典
print('dict1:', dict1)
输出:dict1: {'four': 4, 'three': 3}
dict2 = dict(five=5, six=6)  # 传入键值对,并生成字典
print('dict2:', dict2)
输出:dict2: {'five': 5, 'six': 6}
dict3 = dict([('seven', 7), ('eight', 8)])  # 传入一个包含一个或多个元祖的列表,每个元组内包含一个两个元素,并生成键值对,返回一个字典
print('dict3:', dict3)
输出:dict3: {'seven': 7, 'eight': 8}
dict5 = dict(zip(['eleven', 'twelve'], [11, 12]))  # 传入一个zip()函数,并生成字典
print('dict5:', dict5)
输出:dict5: {'twelve': 12, 'eleven': 11}

在这个例子中还提到了zip()函数,那zip()函数又是什么呢?

zip()函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

eg:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz    #从结果可以看到,zip()是取每个列表的相同角标的元素组成元组
输出结果为:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy    #在组成元组的时候,若列表长度不同,则按照最短的列表为限,长的列表多余的部分直接舍弃
输出结果为:[(1, 4), (2, 5), (3, 6)]x = [1, 2, 3]
x = zip(x)
print x   #即便只有一个列表也会按照元组去重组,所以zip()函数的本质就是把拿到的列表组成元组放在一个列表内
输出结果为:[(1,), (2,), (3,)]x = zip()
print x   #产生了一个空列表
输出结果为:[]x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u
输出结果为:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
一般认为这是一个unzip的过程,它的运行机制是这样的:
在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)],python中的*号 删除可以看这里
注:在函数调用中使用*list/tuple的方式表示将list/tuple分开,作为位置参数传递给对应函数(前提是对应函数支持不定个数的位置参数)
*用于参数前面,表示传入的多个参数将按照元组的形式存储,是一个元组x = [1, 2, 3]
r = zip(* [x] * 3)
print r
输出结果为:[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
它的运行机制是这样的:
[x]生成一个列表的列表,它只有一个元素x
[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]
zip(* [x] * 3)的意思就明确了,zip(x, x, x)

持续更新中,如果存在哪些问题,希望大家能及时指出,我一定会及时修改!

python百例练习之第三例-字典dict()相关推荐

  1. python集合set底层原理_Python进阶11_字典dict和集合set的秘密

    本节你将看到关于字典dict和集合set更加深入的原理,尤其是关于散列在其中的作用,将回答以下问题:Python 里的 dict 和 set 的效率有多高? 为什么它们是无序的? 为什么并不是所有的 ...

  2. 基于Python读取Excel表格文件数据并转换为字典dict格式

      有时我们需要将一个Excel表格文件中的全部或一部分数据导入到Python并转换为字典格式,如何实现呢?   我们以如下所示的一个表格(.xlsx格式)作为简单的示例.其中,表格共有两列,第一列为 ...

  3. python精彩编程200例 pdf-Python创意编程200例turtle篇

    简 介: Python是一种高阶计算机语言.它更接近自然语言,学习成本低,开发效率高.如今越来越多的中小学生都在开始学习Python了.我们可以预见,全民会Python的日子不久就会到来,各行各业的人 ...

  4. Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫

    Python网络爬虫与信息提取笔记01-Requests库入门 Python网络爬虫与信息提取笔记02-网络爬虫之"盗亦有道" Python网络爬虫与信息提取笔记03-Reques ...

  5. 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例

    机器人中的数值优化|[二]最优化方法:最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 在上一节中提到了我们详细探讨了数值优化/最优化理论中的基本概念和性质,现在 ...

  6. 信息学奥赛一本通 2053:【例3.3】三个数

    [题目链接] ybt 2053:[例3.3]三个数 [题目考点] 1. if语句嵌套 2. if-else if语句 [解题思路] if语句嵌套 如果a>=b,那么再判断b,c的大小: 如果b& ...

  7. 信息学奥赛一本通(2053:【例3.3】三个数)

    2053:[例3.3]三个数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 2835     通过数: 1080 [题目描述] 输入三个整数,按从大到小的顺序输出 ...

  8. 职高计算机word教学视频,职高计算机专业Word范例教学三例.doc

    职高计算机专业Word范例教学三例 职高计算机专业Word范例教学三例目前,大部分职高计算机专业的学生的通病是:动手能力弱,接受新知识的能力弱,无法"学会学习".学生进入职高之后, ...

  9. 电脑故障扫描修复软件_非常时期不出门,自己在家修电脑,三例常见电脑故障排除方法。...

    这段时间还是尽量少出门好,防控疫情最有效的方法就是宅在家.那么电脑坏了怎么办呢,且看下面故障现像及解决方法,说不定能帮到你呢! 故障现像 一:开机直接进BIOS画面的 这是其中一种主板的BIOS画面, ...

  10. 通信维修专用电源_通信电源的故障维修三例

    通信电源的故障维修三例 引黄济青工程王褥泵站通信及 自动化 系统 的 电源是 由通信 电源设 备提 供的 , 其工作正常与否直接影响到通信系统的畅通及 自动化系统的正常运行 . 魏信峨 孟 篙岩 李希 ...

最新文章

  1. TX Text Control文字处理教程(13)实现拖放操作
  2. oralce之 10046对Hash Join分析
  3. python if not a_python --- if not
  4. 用ssh反向连接访问内网主机 ( 实例使用autossh隧道实现mysql的同步 )
  5. CCF201909-5 城市规划【树形DP】(100分题解链接)
  6. nginx源码下载、编译和安装
  7. hack_lu_2018_heap_heaven
  8. Maven使用本地jar包(三种方式)
  9. Vuecli 城市三级联动的使用
  10. python公式_python公式大全
  11. 【麒麟操作系统软件商店老是闪退?--麒麟系统软件商店卸载与重装(小白教程)】
  12. 本本蓝屏,自己解决了,很高兴
  13. Win10右键文件夹卡死如何处理
  14. 进入计算机管理模板,计算机管理个人简历模板
  15. 图像处理---亚像素
  16. 瑞波Ripple概念解析-共识网络(官方文档不完全翻译)
  17. 2022-05-14 Unity核心7——2D动画
  18. 黑帽黑客历史盘点:这群人到底厉害到什么程度?
  19. 2022亚太C题赛题分享
  20. 在计算机系统中 接口是什么意思,计算机中操作系统是什么的接口

热门文章

  1. 机械制造技术类毕业论文文献都有哪些?
  2. 深圳农商行智能柜台项目建设案例
  3. 背包客旅行札记-html
  4. 如何让电脑的开机速度变快?
  5. kali下如何生成密码字典(在线)
  6. python --爬虫 --下载小说
  7. MATLAB图像分割——检测交通视频中的汽车目标
  8. ueditor限制字数长度与加入提示语
  9. C语言基础犄角旮旯的知识之数据类型
  10. u盘恢复软件?windows小工具不要错过!