[英]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.