-1

我有这个价值:

y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c

我想删除所有的 ':' 字符。我尝试了不同的方法,例如列表,但没有成功。

有人可以帮我吗?

(对不起我的英语不好)

4

6 回答 6

8

只需使用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'
于 2013-01-30T14:08:00.000 回答
3

我会使用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'

于 2013-01-30T14:15:17.187 回答
1

您可以尝试拆分和重新加入字符串。此外,还有一些使用正则表达式的方法,但这可能是矫枉过正。

y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c"

print("".join(y.split(sep=":")))
于 2013-01-30T14:14:08.543 回答
0

我不是 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(":","");
于 2013-01-30T14:10:56.483 回答
0

那么为何不

print ''.join([x for x in y if x!=":"])

不同方法的不同解决方案。也许这个解决方案可以做一些其他没有问题的事情。

于 2013-01-30T14:13:29.147 回答
0

使用string.splitstring.join执行此操作的另一种可能性(以防万一您需要原始值中的值列表)是:

y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c
y = ''.join(y.split(':'))
于 2013-01-30T14:10:04.450 回答