【发布时间】:2019-02-22 11:13:05
【问题描述】:
我正在学习一个教程,但被这个有趣的字符串切片部分卡住了。假设我有字符串 ,
s='-123'
并尝试使用字符串的子集,
s[s[0] == '-':]
在切片部分使用比较运算符 == 的目的是什么?结果字符串是什么?
完整代码在这里:
def string_to_int(s):
return functools.reduce(lambda running_sum, c: running_sum * 10 +
string.digits.index(c), s[s[0] == '-':], 0) * (-1 if s[0] == '-' else 1)
【问题讨论】:
-
把它想象成
s[1:] if s.startswith('-') else s -
坦率地说,
string_to_int是非常不可读的 IMO,不知道为什么会在教程中使用它!
标签: python python-3.x string lambda