[英]Python Removing Letters From a String
這是一項家庭作業。 我只需要輕推一下。
我正在嘗試創建一個循環,當字符串超出一定數字時,該字符串中的字母將被刪除。
例:
Enter Your String: David
Enter Your Amount: 4
Returns: Davi
到目前為止,我所做的是:
word = raw_input("Enter your string:")
amount = raw_input("Enter your amount:")
word_length = len(word)
if word_length > amount:
for i in range(word_length):
if s[i] > amount:
就我所知而已。 我不確定使用哪種語法刪除位置大於word_length
的字母。
Python中的字符串本身是不可變的-不能更改,不能刪除字母。 但是您可以根據您的字符串創建新的字符串對象。 這樣做的一種方法是切片 。
通讀Python官方教程的鏈接部分,直到找到所需的內容。 :)
編輯 :如果您需要使用循環,如注釋中所建議,則另一種技術也是可能的:
創建一個空列表。
循環遍歷索引range(amount)
然后將與當前索引相對應的字母添加到列表中。
使用"".join(my_list)
將列表再次連接到字符串。
iterim列表的目的是可以更改列表,而字符串(如前所述)是不可變的。
您是否需要循環執行? 否則,請嘗試字符串切片:
word = raw_input("Enter your string: ")
amount = int(raw_input("Enter your amount: "))
s = word[0:amount]
無需循環!
word = raw_input("Enter your string:")
amount = int(raw_input("Enter your amount:"))
word = word[:amount]
print word
第一步是讀取您的值,然后將金額轉換為整數。 而且由於字符串是本質上的字符列表,因此您可以從中獲取子列表。 在Python中, [x:y]
表示法以間隔[x,y)從列表中獲得一個子列表。 如果不提供x( [:y]
),則間隔變為[0,y); 如果不提供y( [x:]
):[x,len(theStr)); 並且如果您都不提供( [:]
),則會得到原始字符串!
獎勵趣聞:
[x:y]
運算符是數組下標運算符[x]
的擴展。 在大多數語言中,調用list[x]
將為您提供x處的元素。 但是,在Python中,它的行為更像遍歷。 例如, list[-1]
將為您提供列表中的最后一個元素。
[x:y:z]
運算符也存在,其中z是遍歷期間要使用的步長間隔。 對於此運算符,有用的情況包括獲取偶數索引處的元素( list[::2]
)和反轉列表( list[::-1]
)。
您可以幫忙切片
word = raw_input("Enter your string:")
amount = raw_input("Enter your amount:")
word=word[:int(amount)] #slicing the rest of unwanted characters
print word
在Python中很難從字符串中刪除字符。 解決給定問題的更好方法是像其他人建議的那樣使用切片,或者如果必須使用循環,通過將所需的字符收集到新字符串中,而不是從舊字符串中刪除它們,即
s = raw_input()
n = int(raw_input())
new_s = ""
for i in range(n):
new_s = new_s + s[i]
我想你有兩種方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.