Python 删除';:';有价值

Python 删除';:';有价值,python,string,list,Python,String,List,我有这个价值: y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c 我想删除所有的“:”字符。 我尝试过不同的方法,例如列表,但没有成功 有人能帮我吗 (对不起我的英语)只需使用: 使用and执行此操作的另一种可能性(以防您需要原始值的值列表)是: 我不是python高手,但我会使用replace()。 为什么不呢 print ''.join([x for x in y if x!=":"]) 不同的方法有不同的解决方案。也许

我有这个价值:

y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c
我想删除所有的“:”字符。 我尝试过不同的方法,例如列表,但没有成功

有人能帮我吗

(对不起我的英语)

只需使用:

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


我不是python高手,但我会使用replace()。

为什么不呢

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

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

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

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

print("".join(y.split(sep=":")))
我会使用:

它很快:-)


它还可以放大以允许删除多个字符,但不做子字符串。例如,您可以使用
str.replace
删除单词,但您无法轻松/有效地删除
'x'
'y'
'z'

请发布您尝试过的无效内容,以便我们可以帮助您修复。直接从文档:translate is;-)@是的,也测试过了。这里大约快了18%。知道为什么会这样吗?@isedev——我在我的帖子中暗示了这一点
str.replace
需要能够处理任意长度的子字符串,因此我假设需要进行一些额外的检查。此外,它还需要处理这样的情况,即用更大的字符串替换字符串,这意味着无法预先知道需要多少内存来保存字符串。使用
translate
,您知道结果总是相同的长度或更短的长度,这可能会允许进行一些优化。我是一个python爱好者,我可能会使用
replace
。我也可以使用
translate
,但我肯定会删除后面的分号-P
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!=":"])
y = "c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c"

print("".join(y.split(sep=":")))
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