Python基础之遇到的小问题记录

快速获得一个数组的反序(numpy数组也支持)

  如[1,2,7,6,3],我们想要获得[3,6,7,2,1]

1
2
arra = [1, 2, 7, 6, 3]
print(arra[::-1])

  如果是一个二维数组arra,那么它的arra[::-1]的结果,即是将原数组的第0行和第n-1行交换,第1行和第n-2行交换,\(\dots\)

字符串转换为十六进制

  在我们使用str.encode()函数时,它是以指定的编码格式编码字符串,默认编码为 'utf-8'。将字符串由string类型变成bytes类型。

1
2
3
4
5
s3 = 'hello'.encode('utf-8')
print(type(s1))
print(s1)
# <class 'bytes'>
# b'hello'

  我们想要获得这个字符串str的十六进制表示,我们可以这样做

1
2
3
4
5
6
7
8
9
10
11
12
import binascii
s1 = 'hello'.encode('gbk')
s2 = 'hello'.encode('utf-16')
s3 = 'hello'.encode('utf-8')
print(type(binascii.hexlify(s1)))
print(binascii.hexlify(s2))
print(binascii.hexlify(s3))
print(str(binascii.hexlify(s3), 'ascii'))
# b'68656c6c6f'
# b'fffe680065006c006c006f00'
# b'68656c6c6f'
# 68656c6c6f

  注意代码中str的使用;