鱼C论坛

 找回密码
 立即注册
查看: 777|回复: 6

[已解决]关于新版Python图书中5.2.2更新元组提问

[复制链接]
发表于 2020-6-21 15:43:14 | 显示全部楼层 |阅读模式

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

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

x
文中利用新建一个同名元组的方法“添加“元素的概念我理解了,但是为什么我将x_men= (x_men [0], "小甲鱼")+ x _men [2:]替换为x_men = (x_men [2:], "小甲鱼")+ x _men [0]或者x_men = x_men [0]+ (x _men [2:], "小甲鱼")都提示错误呢? 还有一个问题就是为什么按照书中的方法,双引号会变成单引号呢?

>>> x_men = ("金刚狼", "暴风女", "火凤凰", "镭射眼")
>>> x_men = (x_men[0], '小甲鱼') + x_men [2:]
>>> x_men
('金刚狼', '小甲鱼', '火凤凰', '镭射眼')


>>> x_men = ("金刚狼", "暴风女", "火凤凰", "镭射眼")
>>> x_men = (x_men [2:], "小甲鱼") + x_men [0]
Traceback (most recent call last):
  File "<pyshell#155>", line 1, in <module>
    x_men = (x_men [2:], "小甲鱼") + x_men [0]
TypeError: can only concatenate tuple (not "str") to tuple

最佳答案
2020-6-21 15:48:39
是为什么我将x_men= (x_men [0], "小甲鱼")+ x _men [2:]替换为x_men = (x_men [2:], "小甲鱼")+ x _men [0]或者x_men = x_men [0]+ (x _men [2:], "小甲鱼")都提示错误呢?


因为当你索引某个元素时候 返回的是那个元素,比如你这里元组内的元素都是字符串,所以你索引返回的是 字符串

而对字符串进行使用 + 号是拼接操作,而字符串不能和元组进行拼接,所以导致报错,而你切片操作 返回的还是元组,所以不会报错

还有一个问题就是为什么按照书中的方法,双引号会变成单引号呢?


在Python 单双引号没有区别,除非你用来匹配数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-21 15:48:39 | 显示全部楼层    本楼为最佳答案   
是为什么我将x_men= (x_men [0], "小甲鱼")+ x _men [2:]替换为x_men = (x_men [2:], "小甲鱼")+ x _men [0]或者x_men = x_men [0]+ (x _men [2:], "小甲鱼")都提示错误呢?


因为当你索引某个元素时候 返回的是那个元素,比如你这里元组内的元素都是字符串,所以你索引返回的是 字符串

而对字符串进行使用 + 号是拼接操作,而字符串不能和元组进行拼接,所以导致报错,而你切片操作 返回的还是元组,所以不会报错

还有一个问题就是为什么按照书中的方法,双引号会变成单引号呢?


在Python 单双引号没有区别,除非你用来匹配数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 15:50:12 From FishC Mobile | 显示全部楼层
元组是不能变化的,研究它的变通改变,没啥意义

评分

参与人数 1贡献 +5 收起 理由
永恒的蓝色梦想 + 5 升个级

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-21 15:52:45 | 显示全部楼层
Twilight6 发表于 2020-6-21 15:48
因为当你索引某个元素时候 返回的是那个元素,比如你这里元组内的元素都是字符串,所以你索引返回的是  ...

请问x_men [0]和x_men [2:]l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字符串相拼接?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 15:54:02 | 显示全部楼层
生化楼大爷 发表于 2020-6-21 15:52
请问x_men [0]和x_men [2:]l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字 ...

第一个是索引操作,第二个叫切片
比如:
x_men = ['aaa','bbb','ccc']
x_men[0]
>>> 'aaa'
x_men[0:1]
>>> ['aaa']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-21 15:55:14 | 显示全部楼层
Twilight6 发表于 2020-6-21 15:54
第一个是索引操作,第二个叫切片
比如:

明白了,我概念上有点混淆了,多谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 15:55:29 | 显示全部楼层
生化楼大爷 发表于 2020-6-21 15:52
请问x_men [0]和x_men [2:]l两者不全是索引元素的意义么?还是说切片不意味着单纯的索引,所以他不能和字 ...

所以你尝试这将两种不同类型数值进行 + 操作 导致的报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 12:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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