繁体   English   中英

使用Pyhton for循环,我怎样才能每次都从字符串中取出一个字母而不重复

[英]Using Pyhton for loop, how can I take a letter from a string every time without any repeatation

''' 创建一个字符串的随机字谜。 使用选择方法创建一个字符串的 5 个随机字谜。

预期结果:由“ CREATE ”的每个字符组成的字谜。

Output : 
Anagram# 1: taeecr 
Anagram# 2: aaaete 
Anagram# 3: acteet 
Anagram# 4: rcrcee
Anagram# 5: aeerca

'''

from random import choice
Orig = 'create'
OrigL = list(Orig)
AnagL = []
for a in range(5):
    AnagL = []
    for i in range(len(Orig)):

        p = choice(OrigL)
        AnagL.append(p)
    Anag = ''.join(AnagL)
    print('Orig#',a+1,Orig)
    print('Anag#',a+1,Anag,'\n')

尝试以下类似的方法,不带random.choice

  1. 将字符串转换为list
  2. 随机播放列表
  3. 加入列表回来

像这样:

from random import shuffle
word = list('create')

for i in range(5):
    shuffle(word)
    print("Anagram #{}: {}".format(i+1, "".join(word)))

Anagram #1: aeetrc
Anagram #2: rcteea
Anagram #3: eertca
Anagram #4: tceear
Anagram #5: erecat

使用random.choice

  1. 将原始字符串转换为list
  2. 使用random.choice从列表中获取随机索引
  3. 弹出该索引并保存字符
  4. 重复步骤 2-3 直到列表为空
  5. 重复步骤 1-4,直到你有 5 个字谜
from random import choice



Orig = 'create'
OrigL = list(Orig)
AnagL = []

for a in range(5):
    AnagL = []
    notAnal=Orig
    for i in range(len(notAnal)):
        p = choice(notAnal)
        notAnal=notAnal.replace(p,'',1)
        AnagL.append(p)
    Anag = ''.join(AnagL)
    print('Orig#',a+1,Orig)
    print('Anag#',a+1,Anag,'\n')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM