📜  Python|扰乱列表中的字符串

📅  最后修改于: 2022-05-13 01:55:02.800000             🧑  作者: Mango

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