[英]Slicing and skipping in Python
編輯:我應該更清楚。 我真的很想跳過字符/字母,所以不僅要解決顯示第一個和最后一個字符的任務。 即使我現在可以做到。 [:: 5]似乎可以工作。
我試圖在python中切一個單詞,所以給了我第一個和最后一個字母。 根據我閱讀的所有內容,我的代碼應該是
word_ = "carrot"
letter = word_[0:6:4]
print(letter)
我理解它,因為前0是“ c”,6是“ t”,后4是要跳過的字符數。 答案給我“ co”。 我嘗試用我的代碼進行實驗,但是我只得到答案“ co”。 有人可以向我解釋我在做什么錯嗎? 我想要答案“ ct”
嘗試使用此命令打印首字母和尾字母:
print word[0] + word[-1]
或在python 3+中(如注釋中所述)
print(world[0] + word[-1])
最后一個參數(4)是一個步驟,即選擇了索引為0、4、8 ...的符號。
python通常會計算字符串中的元素,並從零到字符串長度列出。 因此,“ t”位於位置5,而不是6。您可以通過輸入負數來退后,這樣就可以得到字符串的第一個和最后一個字符。
word = "carrot"
first_letter = word[0]
last_letter = word[-1]
print(first_letter, last_letter)
希望能有所幫助。
包含空格以提高可讀性 。
word = "c a r r o t"
# 0 1 2 3 4 5
# _
# _
# _
# _
# _
第一個字符索引為0,最后一個索引為5。
因此,您將采取5個步驟,從第一個步驟開始到達最后一個步驟。 但是,如果要在切片中包括最后一個字符,則切片的stop參數必須在前面; 因為通常不包括止損指數。
所以你的分片是[0:6:5] -> [start:stop:step]
。 有更巧妙的方法來獲取第一個索引和最后一個索引。 [0]
和[-1]
或[::len(s)-1]
但您可以從前者開始。
4不是要跳過多少個字符,而是到達您選擇的下一個字符所需的步驟數。 t將位於5而不是6
如果您確實需要在這種情況下使用slice
word_ = "carrdote"
letter = word_[::len(word_)-1]
編輯為評論:P
字符串的切片符號的等效while
循環代碼為:
>>> def slice(s, start, end, step):
... result = ""
... i = start
... while i < end:
... result += s[i]
... i += step
... return result
...
>>> word = "carrot"
>>> slice(word, 0, 6, 4)
'co'
>>> word = "strawberry"
>>> slice(word, 0, 6, 4)
'sw'
>>> slice(word, 0, 9, 4)
'swr'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.