我想将12个用户的输入附加到列表中,例如每个月,我希望用户输入一个值。但是我希望这样做,以便每次循环重新循环时循环将值添加到下一个相应列表。我也受限于我可以用于我的作业。 以下是我目前编码的内容。
value_store = [[['Jan']],[['Feb']],[['Mar']],[['Apr']],[['May']],[['Jun']],[['Jul']],[['Aug']],[['Sep']],[['Oct']],[['Nov']],[['Dec']]]
def get_value():
count = 0
while count < 12:
value = float(input('Enter a value between 0 and 2000: '))
if value in range(2001):
for k in value_store[:1]:
value_store[0].append(round(value,3))
count += 1
else:
print('Enter new value')
print(value_store)
get_value()
上面的编码对其中一个列表进行了编码,并且循环了12次。 我想从列表中得到的结果是:
value_store = [[['Jan'],45],[['Feb'],54],[['Mar'],78],[['Apr'],97],[['May'],82],[['Jun'],74],[['Jul'],23],[['Aug'],23],[['Sep'],34],[['Oct'],54],[['Nov',12]],[['Dec'],120]]
以上值是用户在循环循环12次时输入的值。我希望将值插入到该格式的每个列表中,但是我对如何更改代码进行了混淆。
答案 0 :(得分:0)
只需对代码进行一些注释:
if value in range(101):
你应该检查0&lt; = value&lt; = 100.否则你将为每个输入创建一个列表,检查该值是否在列表中(必须搜索整个列表)。你要求0到300之间的数字并检查100。
for k in range(value_store[:1]):
你遍历第一个元素并通过索引0对其进行地址:
value_store[0].append(round(value,3))
所以不需要迭代。
这是一个有效的例子:
value_store = [[['Jan']],[['Feb']],[['Mar']],[['Apr']],[['May']],[['Jun']],[['Jul']], [['Aug']],[['Sep']],[['Oct']],[['Nov']],[['Dec']]]
def get_value():
global value_store
for value_list in value_store:
month = value_list[0][0]
value = -1
while not 0 <= value <= 100:
value = float(input('Enter a value between 0 and 300 for {0}: '.format(month)))
value_list.append(round(value, 3))
print(value_store)
get_value()