在python列表和字符串格式上循环

2024-10-03 21:36:41 发布

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

在字符串格式的列表中循环列表

我有以下变量

BUILDING = "123"
SIDE = "ProductionA"
TODO = "traveling without moving"

我有以下清单

OS = ["Linux", "Unix", "Windows"]

我创建一个格式化的字符串列表

FLIST = [
"I am installing in {}, side {} using the {} cd".format (BUILDING,SIDE,o),
"Other random stuff",
"Even more random stuff: ".format(TODO)]

我想循环列表:

for o in OS:
    print(o)
    for f in FLIST:
        print(f)

我希望得到:

"I am installing in 123, side ProductionA using the Linux cd"
"Other random stuff",
"Even more random stuff: traveling without moving"

"I am installing in 123, side ProductionA using the Unix cd"
"Other random stuff",
"Even more random stuff: traveling without moving"

"I am installing in 123, side ProductionA using the Windows cd"
"Other random stuff",
"Even more random stuff: traveling without moving"

print(o)有效,如果我在格式字符串中省略OS,我将得到值(LinuxUnixWindow)。你知道吗

I am installing in {}, side {} using the {} cd".format (BUILDING,SIDE)

但格式化列表不接受o变量,我得到的错误是:

NameError: name 'o' is not defined.

谢谢你的帮助。你知道吗


Tags: thein列表cdrandomamsidewithout
3条回答

FLIST应该是以o作为输入的函数:

BUILDING = "123"
SIDE = "ProductionA"
TODO = "traveling without moving"

# Note f-strings only work in python 3.6+, revert to .format() if you need to use an older version
def make_flist(operating_system):
    return [
        f"I am installing in {BUILDING}, side {SIDE} using the {operating_system} cd",
        "Other random stuff",
        f"Even more random stuff: {TODO}"
    ]

operating_systems = ["Linux", "Unix", "Windows"]

for operating_system in operating_systems:
    print(operating_system)
    for statement in make_flist(operating_system):
        print(statement)

尝试创建一个以o为参数的函数FLIST

def FLIST(o):
    return [
        "I am installing in {}, side {} using the {} cd".format (BUILDING,SIDE,o), 
        "Other random stuff",
        "Even more random stuff: ".format(TODO)
    ]

然后使用此函数:

for o in OS:
    print(o)
    for f in FLIST(o):
        print(f)

我已经把FLIST放在了循环中。试试看

BUILDING = "123"
SIDE = "ProductionA"
TODO = "traveling without moving"

OS = ["Linux", "Unix", "Windows"]

for o in OS:
    print(o)
    FLIST = ["I am installing in {}, side {} using the {} cd".format (BUILDING,SIDE,o),"Other random stuff","Even more random stuff: {}".format(TODO)]
    for f in FLIST:
        print(f)

输出:

Linux
I am installing in 123, side ProductionA using the Linux cd
Other random stuff
Even more random stuff: traveling without moving
Unix
I am installing in 123, side ProductionA using the Unix cd
Other random stuff
Even more random stuff: traveling without moving
Windows
I am installing in 123, side ProductionA using the Windows cd
Other random stuff
Even more random stuff: traveling without moving

在行动中看到它here

相关问题 更多 >