Есть ли способы шифрования строк в Python? - PullRequest
8 голосов
/ 31 мая 2011

Я пишу программу, и мне нужно зашифровать буквы string s от list в python.Например, у меня есть list из string s вроде:

l = ['foo', 'biology', 'sequence']

И я хочу что-то вроде этого:

l = ['ofo', 'lbyoogil', 'qceeenus']

Каков наилучший способ сделать это?

Спасибо за вашу помощь!

Ответы [ 4 ]

21 голосов
/ 31 мая 2011

В Python есть батареи.

>>> from random import shuffle

>>> def shuffle_word(word):
...    word = list(word)
...    shuffle(word)
...    return ''.join(word)

Понимание списка - это простой способ создать новый список:

>>> L = ['foo', 'biology', 'sequence']
>>> [shuffle_word(word) for word in L]
['ofo', 'lbyooil', 'qceaenes']
4 голосов
/ 31 мая 2011
import random

words = ['foo', 'biology', 'sequence']
words = [''.join(random.sample(word, len(word))) for word in words]
2 голосов
/ 31 мая 2011

Вы можете использовать random.shuffle:

>>> import random
>>> x = "sequence"
>>> l = list(x)
>>> random.shuffle(l)
>>> y = ''.join(l)
>>> y
'quncesee'
>>>

Из этого вы можете создать функцию для выполнения того, что вы хотите.

0 голосов
/ 31 мая 2011

Как и те, что были до меня, я бы использовал random.shuffle():

>>> import random
>>> def mixup(word):
...     as_list_of_letters = list(word)
...     random.shuffle(as_list_of_letters)
...     return ''.join(as_list_of_letters)
...
>>> map(mixup, l)
['oof', 'iogylob', 'seucqene']
>>> map(mixup, l)
['foo', 'byolgio', 'ueseqcen']
>>> map(mixup, l)
['oof', 'yobgloi', 'enescque']
>>> map(mixup, l)
['oof', 'yolbgoi', 'qsecnuee']

Смотри также:

...