Geeker_odd 发表于 2021-8-18 10:46:14

encode与translate(table)

关于字符串的内置方法,内容太多了,教材也没有细讲。有两条我看不懂,请教精通的鱼油:

1. encode

2. translate(table)

这两个是干啥用的?有没有例子?

Geeker_odd 发表于 2021-8-18 11:27:59

接上贴:
假设str1 = "what a marvellous job", 要倒转过来成为"job marvellous a what", 要如何写代码?
我是这样做:

str1 = "what a marvellous job"
list1 = str1.split()
list1.reverse()
str2 = str(list1)
str2
"['job', 'marvellous', 'a', 'what']"
效果不理想。有没有更好的办法?

hrpzcf 发表于 2021-8-18 11:43:27

本帖最后由 hrpzcf 于 2021-8-18 11:45 编辑

倒数第二行
str2 = str(list1)
改成
str2 = " ".join(list1)

大马强 发表于 2021-8-18 12:00:11

本帖最后由 大马强 于 2021-8-18 12:02 编辑

1.encode就是编码,比如 xxx.encode("utf-8"),这些在爬虫那用的多点,有些爬下来的数据你要编码才能正常显示
2.没见到而且没用过,不过看了它的意思应该像是替换的作用,以某种规则来将某个字符替换,我感觉就好像吧 'a' 替换成 'a+a' 之类的
3.str1 = "what a marvellous job"
list1 = str1.split()
list1.reverse()
str2 = " ".join(list1)
print(str2)

Geeker_odd 发表于 2021-8-18 12:38:36

谢谢两位!

阿奇_o 发表于 2021-8-18 13:27:29

单独讲一下encode和decode,其他的可以自己去菜鸟网看看基本的例子和解释,或百度搜。
encode()的作用是把你见的一般的字符串,转为为特定形式的二进制"字符编码",这个过程叫【编码】。
二进制的字符编码,转为一般的可读字符串,这一过程,就是【解码】,用 decode() 。
最常用编码如 ascii, utf-8, gbk/cp936 等(细分的话,还有很多,大概率遇到是这几种)
命令如'a_string字符'.encode('utf-8').decode('utf-8')不过这样的操作在Python里一般是多余的,因为它默认就是以utf-8来编码和解码。
但 常用到编码场景,通常是 文件读写时,网络请求的返回数据,数据库存储编码等。
简单地说,当发生编码的报错时,看看 读取的是不是二进制的数据,其次是它用了哪种编码,然后 用对应的编码进行 decode()即可。

In : g = '中文'.encode('gbk')

In : g
Out: b'\xd6\xd0\xce\xc4'

In : g.decode('gbk')
Out: '中文'

In : g.decode('cp936')
Out: '中文'

In : g.decode('utf-8')
---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-40-72c5702fa905> in <module>
----> 1 g.decode('utf-8')

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte

页: [1]
查看完整版本: encode与translate(table)