gpt4 book ai didi

python - 确定值是否为字符串的最有效方法

转载 作者:行者123 更新时间:2023-12-01 08:31:57 27 4
gpt4 key购买 nike

通常,要检测字符串字段,我只需检查第一个字符是否是字符串。例如:

>>> [str(v)[0].isalpha() for v in ['first', 'last']]
[True, True]

但是,有时我会有数据库或其他字符串字段,但以数字开头,例如“3D”是我遇到的一个字段。

检查列表中的所有项目是否都是字符串的最有效方法是什么?

以下是一些示例:

['1.0', 'test', '3d', '123,000.00', '55']
> False, True, True, False, False

基本上,我想知道一个值是否可以存储为 varchar 字段或需要转换为非字符串字段。

它会是这样的:

values = ['1.0', 'test', '3d', '123,000.00', 55]
>>> [not re.sub(r'\,|\.', '', str(val)).isdigit() for val in values]
[False, True, True, False, False]

有更好的方法吗?

最佳答案

一种有效的方法是在 try-except block 中使用 float() 构造函数,因为它使用 C 中实现的内置测试。删除出现的如果您想忽略千位分隔符,请先 ',':

def not_number(string):
try:
float(string.replace(',', ''))
except ValueError:
return True
return False

这样:

values = ['1.0', 'test', '3d', '123,000.00', '55']
[not_number(value) for value in values]

返回:

[False, True, True, False, False]

关于python - 确定值是否为字符串的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53875513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com