向多个列表添加随机值

2024-06-07 18:49:03 发布

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

import string
import random
    
string_pool = ["W", "X", "Y", "Z"]
names = ["Ironman", "Thor", "Spiderman"]

def func1(a):
    d = []
    for b in a:
        continue
    for c in range(5):
        c += 1
        d += random.choice(string_pool)
    return print("{} : ".format(b) , d)

func1(names)

我希望这段代码的结果如下

Ironman : ["X", "X", "Y", "Z", "X"]
Thor : ["Y", "X", "Z", "Z", "X"]
Spiderman : ["Y", "Y", "Y", "Z", "X"]

但是,结果是

Spiderman : ["Y", "Y", "Y", "Z", "X"]

只有蜘蛛侠。。。我应该在代码中更改什么?谢谢大家!


Tags: 代码inimportforstringnamesdefrange
2条回答

我不知道你在这里想干什么。但以下代码将打印所有名称的输出:

import random
    
string_pool = ["W", "X", "Y", "Z"]
names = ["Ironman", "Thor", "Spiderman"]

def func1(a):
    for b in a:
        d = []
        for _ in range(5):
            d += random.choice(string_pool)
        print("{} : ".format(b) , d)

func1(names)
for b in a:
        continue

不确定您希望这条线做什么

它实际上所做的是执行一个for循环,在这个循环中什么都没有发生。在for循环的每次迭代开始时,循环控制变量(在本例中为b)被分配iterable中下一个元素的值(在本例中为a

在这种情况下,循环将迭代三次:

b = 'Ironman'
b = 'Thor'
b = 'Spiderman'

由于循环的内部是空的(只有continue语句,这意味着“立即跳回到循环的顶部并转到下一个迭代”),所以什么也不会发生

现在,循环完成迭代后,变量b不会被清除或重置。最后分配给它的是a的最后一个元素,即字符串'spiderman'


你的意思是:

for b in a:
    d = []
    for c in range(5):
        d += random.choice(string_pool)
    print("{} : ".format(b) , d)

注意函数的其余部分是如何for循环中的

相关问题 更多 >

    热门问题