-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''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

そして、なぜですか

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

さまざまなアプローチのためのさまざまなソリューション。たぶん、このソリューションは問題ではない他のいくつかのことを行うことができます。

于 2013-01-30T14:13:29.147 に答える
0

string.splitstring.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(':'))
于 2013-01-30T14:10:04.450 に答える
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 に答える