Python 问题记录

Pycharm提示:Expected type ‘optional[bytes]’ got ‘str’ instead

使用split类似函数的时候提示:Expected type ‘optional[bytes]’ got ‘str’ instead

row.split('\t')

Python

并不影响运行,但是如果强迫症的话,可以改用下面的形式:

row.split(b'\t')

Python

python字符串前面加u,r,b的含义

  • u/U:表示unicode字符串,代表是对字符串进行unicode编码
  • r/R:非转义的原始字符串,转义字符不生效,常用于正则表达式
  • b:bytes,python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b
b'\xe2\x82\xac20'.decode('utf-8')  # byte 转 Unicode 字符串
# €20 对应 b'\xe2\x82\xac20'
'€20'.encode('utf-8')   # unicode 字符串转 byte

Python

Python字典读取 KeyError

在Python中,使用下标访问字典元素时,如果不知道是否存在 Key ,使用get代替,而且下标的字符串编码要一致,否则读不到数据。

dict = {'0':0, '1':1}
print(dict['3')   # 报错
print(dict.get('3')  # None
print(dict[0])  # 报错
print(dict.get(b'0')) #None

Python

Python3 字符串类型 str 和字节类型字符串 b”互转

当提示错误:TypeError: must be str, not bytes,或者:TypeError: must be bytes, not str 时,需要对字符串进行转换:

str = 'str test'
bytes = b'byte test'
# str -> bytes
str.encode()
# bytes -> str
bytes.decode()

Python

Python 字符串列表转为数字列表

当从文件中导入数据的时候,读取的是字符串,有时候我们需要把字符串进行分割,分割生存的列表是字符串数组,需要转化为数值数组。

str = '3,4,5,6'
record_list = str.split(',')  # 此时得到的是:['3','4','5','6']

# 使用循环来进行转换
record_list = [int(x) for x in numbers]
# 使用map函数,用于Python2
record_list = map(int, record_list)
# 在Python3中使用map函数得到的是map对象,还需要转为list
record_list = list(map(int, record_list))

# 上面的 int 参数为转换的类型,还可以是float等
record_list = list(map(eval, record_list))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值