如何解决如何创建一个包含两个变量的循环,其中一个变量仅在每第n个循环之后才更改?
我正在尝试编写一个有两个列表和一个字典的程序:
dict = {'fruit1' : 'apple','fruit2' :'banana','fruit3':'cherry' ....and so on}
list1 = ['a','b','c','d','e'....]
list2 = ['fruit1','fruit2','fruit3'....]
我有一个看起来像这样的程序。 [这根本不对,但是它可以帮助表示我想要得到的结果]。
for obj1 in list1:
for obj_2 in list2:
print(obj1)
print(obj_2)
print(dict[obj_2])
我需要以obj_2
每第n个循环更改一次,但obj_1
每次循环更改的方式循环这样做。我该如何实现?
所以我的结果看起来像(考虑第n个循环是第3个循环):
a
fruit1
apple
b
fruit1
apple
c
fruit1
apple
d
fruit2
banana
e
fruit2
banana
f
fruit2
banana
g
fruit3
cherry
.
.
.
解决方法
使用enumerate
函数和模运算符
for idx,obj1 in enumerate(list1):
obj2 = list2[idx % n]
# more code
,
不确定那是不是您想要的帽子,但是您可以更改两个循环的顺序。 如果您这样做:
for obj2 in list2:
for obj1 in list1:
print(obj1)
print(obj2)
print(dict[obj2])
您将在每个循环中更改'obj1',但仅在第二个循环结束后更改'obj2'。
,如果我了解您的目标,则只需要切换循环语句即可。为了演示,请看以下简单示例:
n = 3
for i in range(2):
print(f"{i}")
for j in range(n):
print(f"\t{j}")
编写此程序是为了使i
每n次更改j
一次。这将输出如下内容:
0
0
1
2
1
0
1
2
,
-
dict = {key1:value1,key2:value2,...} *使用“:”代替“ =“
-
这能为您解决吗?
for obj_2 in list2: for obj1 in list1: print(obj1) print(obj_2) print(dict[obj_2])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。