5

list='abcdedcba' がある場合

そして私が欲しい:a = z、b = y、c = x、d = w、e = vなので、次のように変換されます:

translate='zyxwvwxya'

どうすればいいですか?辞書を作ると

>>> d=dict(zip(('a','b','c','d','e'),('z','y','x','w','v')))

とタイプ

>>> example= d[x] for x in list
>>> print translate
['z', 'y', 'x', 'w', 'v', 'w', 'x', 'y', 'z']

フォームに戻すにはどうすればよいですか

translate='zyxwvwxyz'

?

4

6 に答える 6

12
the_list = ['z', 'y', 'x', 'w', 'v', 'w', 'x', 'y', 'z']
print "".join(the_list)
于 2011-04-20T05:24:37.487 に答える
5

単一アルファベット置換の場合は、maketransを使用し、string モジュールから翻訳します。それらは unix のtrコマンドのように動作します。空のセパレーターで結合することは、最後のステップの正しい答えですが、この正確なタスクには必要ありません。

于 2011-04-20T05:43:20.497 に答える
2

maketrans と translate の使用例:

>>> import string
>>> table = string.maketrans('abcdef', 'zyxwvu')
>>> 'abdedddfdffdabe'.translate(table)
'zywvwwwuwuuwzyv'

ASCII アルファベットのすべての文字を置き換えたいと仮定します。

import string
reversed_ascii_letters = string.ascii_letters[::-1]
# reorder lowercase and uppercase
reversed_ascii_letters = reversed_ascii_letters[26:] + reversed_ascii_letters[:26]
table = string.maketrans(string.ascii_letters, reversed_ascii_letters)
data = 'The Quick Brown Fox Jumped Over the Lazy Dog'
print data.translate(table)
于 2011-04-20T06:00:00.787 に答える
2
''.join(translate)

これがあなたが望むものかどうかわかりませんか?

于 2011-04-20T05:25:07.323 に答える
0
>>> import string
>>> letters = string.lowercase
>>> letters
'abcdefghijklmnopqrstuvwxyz'
>>> def revert_string(s):
    s_rev = ''
    for c in s:
        s_rev += letters[len(letters) - 1 - letters.find(c)]
    return s_rev

>>> s = 'zearoizuetlkzjetkl'
>>> revert_string(s)
'avzilrafvgopaqvgpo'
于 2011-04-20T10:17:59.497 に答える