我正在尝试删除下面列表中每个项目的最后两位数字。
keys = ['2013', '1101', '1201', '1301', '1401', '1402', '1403', '2100', '2150', '3201', '5201', '5301', '9810', '9820', '9830', '2013', '1101', '1201', '1202', '1301', '1304', '1401', '1402', '1403', '2100', '2150', '3401', '5201', '5301', '9810', '9820', '9830', '2013', '1101', '5201', '2013', '1101', '1201', '1401', '1402', '1403', '2100', '5201', '5301', '5402', '9810', '9820', '9830', '2013']
for n,k in keys:
keys[n] = keys[n][0]+keys[n][1]
我一直得到ValueError:解压缩的值太多了
答案 0 :(得分:5)
这里不需要正则表达式...简单的切片就可以解决问题:
keys = [k[:-2] for k in keys]
这实际上并不存在,但可以轻松制作:
keys[:] = [k[:-2] for k in keys]
答案 1 :(得分:1)
您收到错误,因为keys
是长度为4的字符串列表,所以
for n,k in keys:
无效,因为长 4 的字符串无法解压缩到 2 变量n
和k
。
无论如何,这是另一种选择:
map(operator.itemgetter(slice(-2)), keys)