簡體   English   中英

Python從字符串中刪除字母

[英]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官方教程的鏈接部分,直到找到所需的內容。 :)

編輯 :如果您需要使用循環,如注釋中所建議,則另一種技術也是可能的:

  1. 創建一個空列表。

  2. 循環遍歷索引range(amount)然后將與當前索引相對應的字母添加到列表中。

  3. 使用"".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]

我想你有兩種方法

  1. 創建一個新字符串,將舊字符一一添加,直到達到極限
  2. 使用自身的一部分[:-1]覆蓋舊字符串,直到達到極限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM