鱼C论坛

 找回密码
 立即注册
查看: 3293|回复: 3

[已解决]python 025 课后习题

[复制链接]
发表于 2018-12-4 20:24:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题1:为啥得出结果是{'one': 1, 'two': 2, 'three': 3}??,zip到底是个什么type??
  1. c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
复制代码


问题2:split()里一定要有东西???
split(sep=None, maxsplit=-1):不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
  1. data1="1000,小甲鱼,男"
  2. data1.split()  #得到的是:['1000,小甲鱼,男'],没有分割字符串

  3. data2="1000,小甲鱼,男"
  4. data2.split(',')  #得到的是:['1000', '小甲鱼', '男']
复制代码


问题3:右边data.split(',') 返回的是列表类型~一般来说,我们不常常用元组的吗?
  1. data = "1000,小甲鱼,男"
  2. MyDict = {}
  3. # 还记得字符串的分割方法吧,别学过就忘啦^_^
  4. (MyDict['id'], MyDict['name'], MyDict['sex']) = data.split(',')

  5. print("ID:   " + MyDict['id'])
  6. print("Name: " + MyDict['name'])
  7. print("Sex   " + MyDict['sex'])
复制代码
最佳答案
2018-12-4 22:52:41
HUMMER军 发表于 2018-12-4 22:44
问题1:
zip语法: zip()     
iterabl 参数说明:一个或多个迭代器;

问题3补充说明:
  1. >>> mydict={}
  2. >>> mydict['id']=1000   #id是key 1000是value
  3. >>> mydict
  4. {'id': 1000}
  5. >>> mydict['id'],mydict['name']=1000, '小甲鱼'
  6. >>> mydict
  7. {'id': 1000, 'name': '小甲鱼'}
  8. >>> (mydict['id'],mydict['name'])=[1000, '小甲鱼']
  9. >>> mydict
  10. {'id': 1000, 'name': '小甲鱼'}
复制代码



纯手打,如有帮助,望采纳!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-4 20:39:41 | 显示全部楼层
问题1:为啥得出结果是{'one': 1, 'two': 2, 'three': 3}??,zip到底是个什么type??
zip的参数是2个以上的可迭代对象,把它们第0个元素组成元组,第1个组成元组.....,再把这些元组组合成生成器。
问题2:split()里一定要有东西???
你自己不也说了“不带参数默认是以空格为分隔符切片字符串”
问题3:右边data.split(',') 返回的是列表类型~一般来说,我们不常常用元组的吗?
大概结果是用列表推导式生成的吧


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 22:44:57 | 显示全部楼层
问题1:
zip语法: zip([iterable, ...])     
iterabl 参数说明:一个或多个迭代器;
返回值:返回的是一个对象
  1. >>> a=[1,2,3]
  2. >>> b=[4,5,6]
  3. >>> c=[4,5,6,7,8]
  4. >>> aaa=zip(a,b)
  5. >>> aaa
  6. <zip object at 0x10b437848>  #返回一个对象
  7. >>> list(aaa)  #可以用列表list()、元组tuple()、字典dict()输出
  8. [(1, 4), (2, 5), (3, 6)]  
  9. >>> list(zip(a,c))   #元素个数与最短的那个迭代器一致
  10. [(1, 4), (2, 5), (3, 6)]
复制代码


问题2:
split()语法:str.split(str="", num=string.count(str))
参数说明:str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等
                num -- 分割次数
返回值:返回分割后的字符串列表
  1. data1="1000,小甲鱼,男"
  2. >>> data1.split()   #括号内没有参数,即根据默认参数来切割
  3. ['1000,小甲鱼,男']
  4. >>> data1.split(',')   #这里就是按照‘,’来分割
  5. ['1000', '小甲鱼', '男']
复制代码


问题3:没看明白问的是啥。。。
但是(mydict['id'], mydict['name'], mydict['sex'])=['1000', '小甲鱼', '男']和
[mydict['id'], mydict['name'], mydict['sex']]=['1000', '小甲鱼', '男']
这两个都行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 22:52:41 | 显示全部楼层    本楼为最佳答案   
HUMMER军 发表于 2018-12-4 22:44
问题1:
zip语法: zip()     
iterabl 参数说明:一个或多个迭代器;

问题3补充说明:
  1. >>> mydict={}
  2. >>> mydict['id']=1000   #id是key 1000是value
  3. >>> mydict
  4. {'id': 1000}
  5. >>> mydict['id'],mydict['name']=1000, '小甲鱼'
  6. >>> mydict
  7. {'id': 1000, 'name': '小甲鱼'}
  8. >>> (mydict['id'],mydict['name'])=[1000, '小甲鱼']
  9. >>> mydict
  10. {'id': 1000, 'name': '小甲鱼'}
复制代码



纯手打,如有帮助,望采纳!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 05:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表