Python|扰乱列表中的字符串
有时,在使用不同的应用程序时,我们可能会遇到一个问题,即我们需要打乱我们获得的列表输入中的所有字符串。这种问题在游戏领域尤其会出现。让我们讨论一些可以解决这个问题的方法。
方法 #1:使用列表理解 + sample() + join()
上述功能的组合可以用来解决这个问题。在此,我们需要将字符串分解为字符列表,使用 sample() 打乱,使用 join() 重新加入它们,然后使用列表推导重新制作列表。
# Python3 code to demonstrate working of
# Scramble strings in list
# using list comprehension + sample() + join()
from random import sample
# initialize list
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
# printing original list
print("The original list : " + str(test_list))
# Scramble strings in list
# using list comprehension + sample() + join()
res = [''.join(sample(ele, len(ele))) for ele in test_list]
# printing result
print("Scrambled strings in lists are : " + str(res))
输出 :
The original list : ['gfg', 'is', 'best', 'for', 'geeks']
Scrambled strings in lists are : ['fgg', 'is', 'btse', 'rof', 'sgeke']
方法#2:使用列表理解 + shuffle() + join()
这与上述方法类似。唯一的区别是 shuffle() 用于执行打乱任务,而不是使用 sample()。
# Python3 code to demonstrate working of
# Scramble strings in list
# using list comprehension + shuffle() + join()
from random import shuffle
# Utility function
def perform_scramble(ele):
ele = list(ele)
shuffle(ele)
return ''.join(ele)
# initialize list
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
# printing original list
print("The original list : " + str(test_list))
# Scramble strings in list
# using list comprehension + shuffle() + join()
res = [perform_scramble(ele) for ele in test_list]
# printing result
print("Scrambled strings in lists are : " + str(res))
输出 :
The original list : ['gfg', 'is', 'best', 'for', 'geeks']
Scrambled strings in lists are : ['fgg', 'is', 'btse', 'rof', 'sgeke']