How to delete a character from a string using Python
there is a string,for example。
我怎么能中的remove the character,即从
- Python中的字符串给端在任何特殊字符?
- which is a better left to right就是这样- shifting starting from the creation of character or中学在字符串和not Copying中间character?
在Python中,字符串是不可变的,因此必须创建一个新的字符串。对于如何创建新字符串,您有几个选项。如果要删除出现的"m",请执行以下操作:
1 | newstr = oldstr.replace("M","") |
如果要删除中心字符:
1 2 | midlen = len(oldstr)/2 newstr = oldstr[:midlen] + oldstr[midlen+1:] |
您询问字符串是否以特殊字符结尾。不,你想得像个C程序员。在python中,字符串以其长度存储,因此任何字节值(包括
这可能是最好的方法:
1 2 | original ="EXAMPLE" removed = original.replace("M","") |
不要担心字符的移动等。大多数Python代码发生在更高的抽象级别上。
替换特定位置:
1 | s = s[:pos] + s[(pos+1):] |
替换特定字符:
1 | s = s.replace('M','') |
字符串是不可变的。但是,您可以将它们转换为一个可变的列表,然后在更改列表后将其转换回一个字符串。
1 2 3 4 5 6 7 8 9 10 11 12 | s ="this is a string" l = list(s) # convert to list l[1] ="" #"delete" letter h (the item actually still exists but is empty) l[1:2] = [] # really delete letter h (the item is actually removed from the list) del(l[1]) # another way to delete it p = l.index("a") # find position of the letter"a" del(l[p]) # delete it s ="".join(l) # convert back to string |
您还可以创建一个新字符串,如其他人所示,方法是从现有字符串中获取除所需字符以外的所有内容。
How can I remove the middle character, i.e., M from it?
不能,因为Python中的字符串是不可变的。
Do strings in Python end in any special character?
不。它们类似于字符列表;列表的长度定义了字符串的长度,没有字符充当终止符。
Which is a better way - shifting everything right to left starting from the middle character OR creation of a new string and not copying the middle character?
不能修改现有字符串,因此必须创建一个包含除中间字符以外的所有内容的新字符串。
使用
1 2 3 | >>> s = 'EXAMPLE' >>> s.translate(None, 'M') 'EXAPLE' |
用户字符串.mutableString
易变方式:
1 2 3 4 5 6 7 8 9 10 11 12 | import UserString s = UserString.MutableString("EXAMPLE") >>> type(s) <type 'str'> # Delete 'M' del s[3] # Turn it for immutable: s = str(s) |
1 2 | card = random.choice(cards) cardsLeft = cards.replace(card, '', 1) |
如何从字符串中删除一个字符:下面是一个例子,其中有一堆卡片在一个字符串中表示为字符。其中一个被绘制(为random.choice()函数导入随机模块,该函数在字符串中选择一个随机字符)。创建了一个新字符串cardsleft,用于保存字符串函数replace()给出的剩余卡,其中最后一个参数表示只有一个"卡"将被空字符串替换…
1 2 3 4 5 | def kill_char(string, n): # n = position of which character you want to remove begin = string[:n] # from beginning to n (n not included) end = string[n+1:] # n+1 through end of string return begin + end print kill_char("EXAMPLE", 3) #"M" removed |
我在这里见过这个。
以下是我为"M"做的事情:
1 2 | s = 'EXAMPLE' s1 = s[:s.index('M')] + s[s.index('M')+1:] |
如果要删除/忽略字符串中的字符,例如,您有这个字符串,
"〔11:L:0〕
从Web API响应或类似的响应,比如csv文件,假设您正在使用请求
1 2 3 4 5 6 7 | import requests udid = 123456 url = 'http://webservices.yourserver.com/action/id-' + udid s = requests.Session() s.verify = False resp = s.get(url, stream=True) content = resp.content |
循环并清除不需要的字符:
1 2 3 4 | for line in resp.iter_lines(): line = line.replace("[","") line = line.replace("]","") line = line.replace('"',"") |
可选拆分,您将能够单独读取值:
1 | listofvalues = line.split(':') |
现在访问每个值更容易:
1 2 3 | print listofvalues[0] print listofvalues[1] print listofvalues[2] |
这将打印
11
L
0
< /块引用>
您可以简单地使用列表理解。
假设您有一个字符串:
my name is ,您希望删除字符m 。使用以下代码:
1 "".join([x for x in"my name is" if x is not 'm'])删除
char 或sub-string 一次(仅第一次出现):
1 main_string = main_string.replace(sub_str, replace_with, 1)注:此处,根据您要替换的发生次数,可以用任何
int 替换1 。
1
2
3
4
5
6
7
8
9
10
11
12
13 from random import randint
def shuffle_word(word):
newWord=""
for i in range(0,len(word)):
pos=randint(0,len(word)-1)
newWord += word[pos]
word = word[:pos]+word[pos+1:]
return newWord
word ="Sarajevo"
print(shuffle_word(word))字符串在Python中是不可变的,所以这两个选项的基本含义相同。