1

我正在尝试删除下面列表中每个项目的最后 2 位数字。

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: too many values to unpack

4

2 回答 2

5

这里不需要正则表达式......简单的切片就可以了:

keys = [k[:-2] for k in keys]

这实际上并没有到位,但它可以很容易地到位:

keys[:] = [k[:-2] for k in keys]
于 2013-02-28T21:11:10.603 回答
1

您收到一个错误,因为keys是长度为 4 的字符串列表,所以

for n,k in keys:

无法工作,因为长度为4的字符串无法解压缩为2 个变量nk.

无论如何,这是另一种选择:

map(operator.itemgetter(slice(-2)), keys)
于 2013-02-28T21:16:48.913 回答