亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在字符串切片中使用比較運算符

在字符串切片中使用比較運算符

慕婉清6462132 2021-11-16 15:29:23
我正在學習教程并被這個有趣的字符串切片部分卡住了。假設我有字符串 s,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)
查看完整描述

2 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

s[0] == '-'將對True-和開頭的字符串求值False。True具有一個數字值1,False 0,所以其效果是從索引片1起當它與開始-(跳過-),或從0開始否則(跳過無關,因為不存在-)。

從本質上講,這是-從字符串中精確地剝離一個前導的一個過于聰明的方法,如果它存在的話。


查看完整回答
反對 回復 2021-11-16
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

讓我們來看看。

s[0] == '-'

這意味著“字符串的第一個字符是“-”符號嗎?在您的情況下,即True, 并且True等效于1.

如果將其替換為一個,則可以更好地理解:

s[1:]

所以它將返回除第一個字符之外的所有字符串。

但 !如果是False,就像 in s = "+123",那么 asFalse等價于0,它將返回整個字符串。


查看完整回答
反對 回復 2021-11-16
  • 2 回答
  • 0 關注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號