Answers:
在Python中,字符串是不可变的,因此您必须创建一个新字符串。您有一些有关如何创建新字符串的选项。如果要删除出现的“ M”,请执行以下操作:
newstr = oldstr.replace("M", "")
如果要删除中心字符:
midlen = len(oldstr)/2 # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]
您询问字符串是否以特殊字符结尾。不,您在想像C程序员。在Python中,字符串按其长度存储,因此任何字节值(包括\0
)都可以出现在字符串中。
from __future__ import division
脚本开头的这一行将使2.X版的python像3.X版一样
""
这样的空字符串并不表示空行。如果将其放在列表中并与换行符连接,则它将形成一个空行,但是在很多其他地方,您可能会使用一个空字符串,但不会这样做。
这可能是最好的方法:
original = "EXAMPLE"
removed = original.replace("M", "")
不用担心字符转移等问题。大多数Python代码以更高的抽象级别进行。
M
可能不是唯一的。在这种情况下,它将替换所有的M
s,对不对?
n
事件,请使用original.replace("M", "", n)
。
要替换特定职位:
s = s[:pos] + s[(pos+1):]
替换特定字符:
s = s.replace('M','')
l
。然后对于第一部分,pos的约束应为l-1 > pos >= 0
。
字符串是不可变的。但是您可以将它们转换为可变的列表,然后在更改列表后将其转换回字符串。
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
您还可以通过从现有字符串中获取除所需字符以外的所有内容来创建一个新字符串,如其他字符串所示。
str.replace
方法?
使用translate()
方法:
>>> s = 'EXAMPLE'
>>> s.translate(None, 'M')
'EXAPLE'
str.maketrans( "", "", "<>")
和str.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
可变方式:
import UserString
s = UserString.MutableString("EXAMPLE")
>>> type(s)
<type 'str'>
# Delete 'M'
del s[3]
# Turn it for immutable:
s = str(s)
这是我切出“ M”的方法:
s = 'EXAMPLE'
s1 = s[:s.index('M')] + s[s.index('M')+1:]
如果您要删除/忽略字符串中的字符,例如,您拥有此字符串,
“ [11:L:0]”
来自Web API响应或类似CSV文件之类的信息,假设您正在使用请求
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
循环并摆脱不需要的字符:
for line in resp.iter_lines():
line = line.replace("[", "")
line = line.replace("]", "")
line = line.replace('"', "")
可选拆分,您将能够单独读取值:
listofvalues = line.split(':')
现在访问每个值更容易:
print listofvalues[0]
print listofvalues[1]
print listofvalues[2]
这将打印
11
大号
0
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))