有关Python的问题:
这里写的:
if i[0]<1 or i[1]>150:
nameages.remove(i)
是不是有什么错误,该怎么完成?
从后往前遍历,要不每remove一项数组会少一项,这样会少遍历remove掉的次数导致删不全
def validages(nameages):
for i in range(len(nameages)-1,-1,-1):
item=nameages[i]
if item[1]<0 or item[1]>150:
nameages.remove(item)
dic=dict(nameages)
return dic
assert validages([('Ann',15),('Bin',190),('Jack',75)])=={'Ann':15,'Jack':75}
assert validages([('Ann',-15),('Bin',190),('Jack',0)])=={'Jack':0}
assert validages([('Ann',-15),('Bin',190)])=={}
代码好像没问题
你的代码有2个问题
1.nameages是个可变值类型,你不应该在函数里改变它,否则会影响实参,当然本题目中改变不改变对后续没有影响
2.nameages是个list套tuple的结构,你不可以直接转dict,你得自己建立一个dict通过循环建立key和value把它填充上