python-扰乱文本文件中的字母

我正在准备测试数据,必须使用不同的字母表示அ-20次
ம-30次,த-40次….(它们是UTF-8编码支持的泰米尔语Languague字母)
这可以使用打印语句来实现

{print ( ' ம் ' * 30 ) + ( ' த ' * 40  ) + }

但是,我需要加扰它们,以便它们不会以任何特定顺序出现.我大约有230个字母,我要印刷20、30、40次.然后我需要对它们进行加扰并将它们写入输出文件.
在这方面的任何帮助都是有帮助的.

解决方法:

有很多方法可以解决此问题.最有效的将是使用random module.

random.shuffle

>>> from random import shuffle
>>> my_string = list('This is a test string.')
>>> shuffle(my_string)
>>> scrambled = ''.join(my_string)
>>> print(scrambled)
.sTtha te s rtisns gii

为此,您必须从字符串的字符创建一个列表,因为字符串是immutable.

A new object has to be created if a different value has to be stored.

random.sample

>>> from random import sample
>>> my_string = 'This is a test string.'
>>> scrambled = random.sample(my_string, len(my_string))
>>> scrambled = ''.join(scrambled)
>>> print(scrambled)
gr.s i tisstheit Tn sa

您不必为此创建列表;因为,根据random.sample文档:

Returns a new list containing elements from the population while leaving the original population unchanged.

The sorted built-inrandom.random

>>> from random import random
>>> my_string = 'This is a test string.'
>>> scrambled = sorted(my_string, key=lambda i: random())
>>> scrambled = ''.join(scrambled)
>>> print(scrambled)
ngi rts ithsT.staie s 

您也不需要为此的列表.从排序的文档中:

Return a new sorted list from the items in iterable.

由于在Python中将字符串视为iterable(请参见下文),因此可以对其使用sorted.

可迭代的定义为

An object capable of returning its members one at a time.

上一篇:leetcode 87. Scramble String


下一篇:Java中的解读字母 – 获取所有可能的字母组合