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つの変数nとに解凍できないため、機能しませんk

とにかく、ここに別の選択肢があります:

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