私はこの値を持っています:
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'
'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=":")))
そして、なぜですか
print ''.join([x for x in y if x!=":"])
さまざまなアプローチのためのさまざまなソリューション。たぶん、このソリューションは問題ではない他のいくつかのことを行うことができます。
string.splitとstring.joinを使用してこれを行うもう 1 つの可能性 (元の値からの値のリストが必要な場合に備えて)は次のとおりです。
y = c0:ad:0c:5a:f4:42:89:41:c5:6c:d7:48:8b:91:a2:f6:34:9c
y = ''.join(y.split(':'))
私は 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(":","");