鱼C论坛

 找回密码
 立即注册
查看: 904|回复: 16

数字转换为列表

[复制链接]
发表于 2020-4-4 22:02:36 | 显示全部楼层 |阅读模式

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

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

x
问题1:
请问如果将一个数字转换成列表:如,a=15 ,转换成[15]。不是转换成[1,5]

问题2:
请问python是否有连接符,如a="'",b="xy", a和b相连,就变成 ‘xy,用加感觉效率特别底,特别是当b是数字的时候,还有能直接相加,还要转换一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 22:06:07 | 显示全部楼层
1:
  1. >>> a = 15
  2. >>> b = []
  3. >>> b.append(a)
  4. >>> b
  5. [15]
复制代码

当然,你也可以:
  1. >>> c = [a]
  2. >>> c
  3. [15]
复制代码

2,没有听明白你的问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-4 22:12:48 | 显示全部楼层
qiuyouzhi 发表于 2020-4-4 22:06
1:

当然,你也可以:

感谢。第二问题就是说的。
有没有类似&这种连接符。我记得VBA不管什么是数字还是字符,都能用&连接,最后就是一个字符串,特别好用,在python中老是报错。有没有什么方法实现&的功能。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 22:14:05 | 显示全部楼层
本帖最后由 隔壁繁星吖 于 2020-4-4 22:18 编辑

1.
  1. >>> a = 15
  2. >>> b = []
  3. >>> b.append(a)
复制代码


2.
  1. #方法一
  2. >>>website = 'python' + 'tab' + '.com'
  3. #方法2
  4. >>>listStr = ['python', 'tab', '.com']
  5. >>>website = ''.join(listStr)
  6. #方法3:
  7. >>>website = '%s%s%s' % ('python', 'tab', '.com')
复制代码

        接下来探究效率问题:
        方法一:之所以说python 中使用 + 进行字符串连接的操作效率低下,是因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当连续相加的字符串很多时(a+b+c+d+e+f+...) ,效率低下就是必然的了
        方法2:使用略复杂,但对多个字符进行连接时效率高,只会有一次内存的申请。而且如果是对list的字符进行连接的时候,这种方法是首选
        方法3:字符串格式化,这种方法非常常用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 22:14:55 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-4-4 22:06
1:

当然,你也可以:

2,他的意思是说字符串和数值进行混连接
就像js一样,js中"abc"+567与"abc"+"567"
会得到一样的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-4 22:19:31 | 显示全部楼层

那如果是这样呢:
a=123
b="nihao"
a+b感觉就不行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-4 22:24:41 | 显示全部楼层

您这个方法3,提前得知道对应类型才可以。如果不知道就比较麻烦了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 22:25:26 | 显示全部楼层
高义校长 发表于 2020-4-4 22:24
您这个方法3,提前得知道对应类型才可以。如果不知道就比较麻烦了。

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

使用道具 举报

发表于 2020-4-4 23:10:14 From FishC Mobile | 显示全部楼层
问题二可以用字符串格式化方法解决啊
a=123
b="abc"
c=f"{a}{b}"
print(c)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 23:47:29 | 显示全部楼层

谢谢,学习啦!  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 23:51:17 | 显示全部楼层

a=123
b="nihao"
print('{}{}'.format(a,b))

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

使用道具 举报

发表于 2020-4-5 08:34:19 | 显示全部楼层
高义校长 发表于 2020-4-4 22:12
感谢。第二问题就是说的。
有没有类似&这种连接符。我记得VBA不管什么是数字还是字符,都能用&连接,最 ...


可以用格式化操作符。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 10:19:04 | 显示全部楼层
高义校长 发表于 2020-4-4 22:12
感谢。第二问题就是说的。
有没有类似&这种连接符。我记得VBA不管什么是数字还是字符,都能用&连接,最 ...

python是强类型语言,要想实现这个就写函数
  1. func=lambda *vals,sep='':sep.join(map(str,vals))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 13:17:14 | 显示全部楼层
高义校长 发表于 2020-4-4 22:12
感谢。第二问题就是说的。
有没有类似&这种连接符。我记得VBA不管什么是数字还是字符,都能用&连接,最 ...

没有的,必须要将数据转化为字符串。或者使用格式化操作符:

  1. >>> a = 123
  2. >>> b = 'abc'
  3. >>> print(f'{a}{b}')
  4. 123abc
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 13:32:19 From FishC Mobile | 显示全部楼层
隔壁繁星吖 发表于 2020-4-4 22:14
1.

2.

% 效率略低,推荐使用 f'string'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 13:33:23 From FishC Mobile | 显示全部楼层
高义校长 发表于 2020-4-4 22:24
您这个方法3,提前得知道对应类型才可以。如果不知道就比较麻烦了。

明确类型后,就不至于因为类型报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 13:35:00 From FishC Mobile | 显示全部楼层
  1. >>> a = 15
  2. >>> [a]
  3. [15]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 05:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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