我有这个价值:
y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c
我想删除所有的 ':' 字符。我尝试了不同的方法,例如列表,但没有成功。
有人可以帮我吗?
(对不起我的英语不好)
只需使用y.replace(':', '')
:
In [13]: y = 'c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c'
In [14]: y.replace(':', '')
Out[14]: 'c0ad0c5af4428941c56cd7488b91a2f6349c'
我会使用str.translate
:
y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c"
y.translate(None,':')
它很快 :-)
>>> import timeit
>>> def replace(x):
... return x.replace(":","")
...
>>> def translate(x):
... return x.translate(None,':')
...
>>> y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c"
>>> replace(y) == translate(y)
True
>>> timeit.timeit('replace(y)','from __main__ import replace,y')
1.3739330768585205
>>> timeit.timeit('translate(y)','from __main__ import translate,y')
0.9205348491668701
它还可以扩展以允许删除多个字符,但它不执行子字符串。例如,您可以删除带有 的单词str.replace
,但不能轻松/有效地删除'x'
or'y'
或'z'
。
您可以尝试拆分和重新加入字符串。此外,还有一些使用正则表达式的方法,但这可能是矫枉过正。
y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c"
print("".join(y.split(sep=":")))
我不是 python 人,但我会使用 replace()。 http://www.tutorialspoint.com/python/string_replace.htm
y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c";
y.replace(":","");
那么为何不
print ''.join([x for x in y if x!=":"])
不同方法的不同解决方案。也许这个解决方案可以做一些其他没有问题的事情。
使用string.split和string.join执行此操作的另一种可能性(以防万一您需要原始值中的值列表)是:
y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c
y = ''.join(y.split(':'))