在列表中的元组上循环

2024-10-01 09:24:29 发布

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

我试图用4个元素循环list of tuples->[("y1", "N", "var1", "x1"), ...] 并根据tuple中的值创建变量,如下所示:

for kyoten_num in list_of_kyoten_numbers_days: # List of tuples

    if kyoten_num[1] == 'N':
        cl = 4
    if kyoten_num[1] == 'AA':
        cl = 6

    if kyoten_num[2] == 'var1':
        rw = 9
    if kyoten_num[2] == 'var2':
        rw = 10

    print(cl, rw)

但它会在var1处停止打印,直到循环结束

4 9
6 9
4 9
6 9
4 9
6 9

我如何打印以下内容:

4 9
6 9
4 10
6 10


Tags: ofgt元素ifclnumlistrw
2条回答

如果可能,可以重新验证元组声明,如下所示:

list_of_tup = [("y1", "N", "var1", "x1"),("y2", "AA", "var2", "x1")]

for kyoten_num in list_of_tup:

    if kyoten_num[1] == 'N':
        cl = 4
    if kyoten_num[1] == 'AA':
        cl = 6

    if kyoten_num[2] == 'var1':
        rw = 9
    if kyoten_num[2] == 'var2':
        rw = 10`enter code here`

    print(cl, rw)

如果我运行以下代码(这只是您提供的代码以及注释中list_of_kyoten_numbers_days的值)

list_of_kyoten_numbers_days = [("y1", "N", "var1", "x1"), ("y1", "AA", "var1", "x1"), ("y1", "N", "var2", "x1"), ("y1", "AA", "var2", "x1")]


for kyoten_num in list_of_kyoten_numbers_days: # List of tuples

    if kyoten_num[1] == 'N':
        cl = 4
    if kyoten_num[1] == 'AA':
        cl = 6

    if kyoten_num[2] == 'var1':
        rw = 9
    if kyoten_num[2] == 'var2':
        rw = 10

    print(cl, rw)

然后我得到的输出是

4 9
6 9
4 10
6 10

这正是你所希望的结果。因此,我怀疑,如果您正在生成不同的输出,那么您在list_of_kyoten_numbers_days中不知何故就错了。(特别是因为该列表中的每个元素正好有一个print发生…)

相关问题 更多 >