如何将数字提取至不同变量?类似Excel LEFT/RIGHT函数的提取方法
问题解答
1. 将数字12345提取到不同变量中
以Python为例,有两种实用方法:
- 字符串转换法:把数字转为字符串后按索引提取,再转回整数
num = 12345 num_str = str(num) a = int(num_str[0]) # 提取第一位:1 b = int(num_str[1]) # 提取第二位:2 c = int(num_str[2]) # 提取第三位:3 d = int(num_str[3]) # 提取第四位:4 e = int(num_str[4]) # 提取第五位:5
- 数学运算分离法:通过整除和取余操作拆分每一位
num = 12345 e = num % 10 # 提取最后一位:5 d = (num // 10) % 10 # 提取第四位:4 c = (num // 100) % 10 # 提取第三位:3 b = (num // 1000) % 10 # 提取第二位:2 a = num // 10000 # 提取第一位:1
2. 实现类似Excel LEFT/RIGHT函数提取收盘价
以下是Python实现,支持示例中的提取逻辑:
自定义函数实现
def left(target, param): target_str = str(target) # 处理范围参数(如"2:1"),提取指定位置的数字(按1位索引) if isinstance(param, str) and ':' in param: pos = int(param.split(':')[0]) return int(target_str[pos-1]) # 提取前n位数字 else: return int(target_str[:param]) def right(target, n): # 提取后n位数字 target_str = str(target) return int(target_str[-n:])
示例使用
close_price = 123 x = left(close_price, 1) # 对应left(1),结果为1 y = left(close_price, "2:1")# 对应left(2:1),结果为2 z = right(close_price, 1) # 对应right(1),结果为3 print(f"x = {x}, y = {y}, z = {z}")
输出结果:x = 1, y = 2, z = 3
内容的提问来源于stack exchange,提问作者jeez
相关产品推荐
相关产品推荐

