高义校长 发表于 2020-4-4 22:02:36

数字转换为列表

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

问题2:
请问python是否有连接符,如a="'",b="xy", a和b相连,就变成 ‘xy,用加感觉效率特别底,特别是当b是数字的时候,还有能直接相加,还要转换一下。

qiuyouzhi 发表于 2020-4-4 22:06:07

1:
>>> a = 15
>>> b = []
>>> b.append(a)
>>> b

当然,你也可以:
>>> c =
>>> c

2,没有听明白你的问题?

高义校长 发表于 2020-4-4 22:12:48

qiuyouzhi 发表于 2020-4-4 22:06
1:

当然,你也可以:


感谢。第二问题就是说的。
有没有类似&这种连接符。我记得VBA不管什么是数字还是字符,都能用&连接,最后就是一个字符串,特别好用,在python中老是报错。有没有什么方法实现&的功能。

隔壁繁星吖 发表于 2020-4-4 22:14:05

本帖最后由 隔壁繁星吖 于 2020-4-4 22:18 编辑

1.>>> a = 15
>>> b = []
>>> b.append(a)

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

wp231957 发表于 2020-4-4 22:14:55

qiuyouzhi 发表于 2020-4-4 22:06
1:

当然,你也可以:


2,他的意思是说字符串和数值进行混连接
就像js一样,js中"abc"+567与"abc"+"567"
会得到一样的结果

高义校长 发表于 2020-4-4 22:19:31

隔壁繁星吖 发表于 2020-4-4 22:14
1.

2.


那如果是这样呢:
a=123
b="nihao"
a+b感觉就不行了。

高义校长 发表于 2020-4-4 22:24:41

隔壁繁星吖 发表于 2020-4-4 22:14
1.

2.


您这个方法3,提前得知道对应类型才可以。如果不知道就比较麻烦了。

隔壁繁星吖 发表于 2020-4-4 22:25:26

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

的确

hrp 发表于 2020-4-4 23:10:14

问题二可以用字符串格式化方法解决啊
a=123
b="abc"
c=f"{a}{b}"
print(c)

xiangjianshinan 发表于 2020-4-4 23:47:29

隔壁繁星吖 发表于 2020-4-4 22:14
1.

2.


谢谢,学习啦!

xiangjianshinan 发表于 2020-4-4 23:51:17

隔壁繁星吖 发表于 2020-4-4 22:25
的确

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

这样呢?

qiuyouzhi 发表于 2020-4-5 08:34:19

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

可以用格式化操作符。

永恒的蓝色梦想 发表于 2020-4-5 10:19:04

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

python是强类型语言,要想实现这个就写函数func=lambda *vals,sep='':sep.join(map(str,vals))

zltzlt 发表于 2020-4-5 13:17:14

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

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

>>> a = 123
>>> b = 'abc'
>>> print(f'{a}{b}')
123abc

_2_ 发表于 2020-4-5 13:32:19

隔壁繁星吖 发表于 2020-4-4 22:14
1.

2.


% 效率略低,推荐使用 f'string'

_2_ 发表于 2020-4-5 13:33:23

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

明确类型后,就不至于因为类型报错了

_2_ 发表于 2020-4-5 13:35:00

>>> a = 15
>>>
页: [1]
查看完整版本: 数字转换为列表