在值中删除':'

时间:2013-01-30 14:06:46

标签: python string list

我有这个值:

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

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

有人可以帮助我吗?

(抱歉我的英文)

6 个答案:

答案 0 :(得分: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'

答案 1 :(得分: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''y''z'

答案 2 :(得分: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=":")))

答案 3 :(得分: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(':'))

答案 4 :(得分:0)

我不是蟒蛇人,但我会使用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(":","");

答案 5 :(得分:0)

为什么不

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

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