将单词中的字母随机排列

2024-10-03 06:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题要求用户输入一个单字串,然后随机化单词中字母的位置,例如,“hello”可以变成“elhlo”

import random

def word_jumble():
    word = raw_input("Enter a word: ")
    new_word = ""
    for ch in range(len(word)):
        r = random.randint(0,len(word)-1)
        new_word += word[r]
        word = word.replace(word[r],"",1)
    print new_word

def main():
    word_jumble()

main()

我从别人那里得到了这个程序,但不知道它是怎么工作的。有人能给我解释一下吗?我以前什么都懂

^{pr2}$

Tags: 用户importhellonewrawlenmaindef
3条回答

r是单词中随机选择的索引,因此word[r]是单词中随机选择的字符。代码的作用是从word中选择一个随机字符并将其附加到new_wordnew_word += word[r])中。下一行删除原始单词中的字符。在

代码不必要地复杂,这可能更容易理解:

import random
word = raw_input("Enter a word: ")

charlst = list(word)        # convert the string into a list of characters
random.shuffle(charlst)     # shuffle the list of characters randomly
new_word = ''.join(charlst) # convert the list of characters back into a string

如果使用bytearray,则可以直接使用random.shuffle

import random
word = bytearray(raw_input("Enter a word: "))
random.shuffle(word)

相关问题 更多 >