如何格式化随机抽样的列表元素?

2024-05-13 11:02:48 发布

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

我想得到以下输出:

T1: j2 
T2: j4
T3: j3
T1: j7
T2: j
T3: j6
T1: j5

我试过用for循环,但我做不到。这是我的密码:

import random

team = ['t1','t2','t3']
task = ["j","j2","j3","j4","j5","j6","j7"]

print (task)
s_task = random.sample(task,len(task))
print (s_task)

for itm in team:
    for itm1 in s_task:
        print(itm,itm1)

T1: j2 
T2: j4
T3: j3
T1: j7
T2: j
T3: j6
T1: j5

Tags: fortaskrandomteamt1t3printj5
3条回答

您可以使用string.format()

import random

team = ['t1','t2','t3']
task = ["j","j2","j3","j4","j5","j6","j7"]

print (task)
s_task = random.sample(task,len(task))
print (s_task)

for itm in team:
    for itm1 in s_task:
        print("{}: {}".format(itm,itm1))

这应该以您需要的格式打印

如果您只需要一种格式化输出的方法,可以使用:

Formatted string literal又名f-string(对于python3.6或更高版本)类似

for itm in team:
    for itm1 in s_task:
        print(f"{itm}: {itm1}")

阅读有关f字符串here的更多信息。你知道吗


如果您的Python3低于Python3.6,请使用^{}并使用

print("{}: {}".format(itm, itm1))

看起来你需要itertools.cyclerandom.choice

例如:

import random
from itertools import cycle
team = ['t1','t2','t3']
task = ["j","j2","j3","j4","j5","j6","j7"]


team = cycle(team)
for _ in range(len(task)):
    print("{}: {}".format(next(team), random.choice(task)))

输出:

t1: j5
t2: j5
t3: j
t1: j7
t2: j6
t3: j7
t1: j3

相关问题 更多 >