我正在处理一个格式不正确的CSV文件; 它有重复的字段名称.
csv.DictReader只需使用相同名称覆盖第一列的第一列,并使用相同名称的第二列内容.但我需要具有重复名称的列的内容.
我无法DictReader.fieldnames直接分配参数.大约有一百列,每次都有不同的列数,例如:
product, price1, price2, price1,...,price100
car, 100, 300, 200,...,350
Run Code Online (Sandbox Code Playgroud)
输出: {'product':'car', 'price1': 200, 'price2':300}
我需要: {'product':'car', 'price1': 100, 'price2':300, 'price3': 200}
这样做的方法是什么?
假设我有一个列表:
>>> numbers = list(range(1, 15))
>>> numbers
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Run Code Online (Sandbox Code Playgroud)
我只需要使用切片表示法反转最后10个元素
首先,我尝试切片w/o反向
>>> numbers[-10:]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
Run Code Online (Sandbox Code Playgroud)
然后:
>>> numbers[-10::-1]
我期望 [14, 13, 12, 11, 10, 9, 8, 7, 6, 5]
但得到了[5, 4, 3, 2, 1].
我可以这样解决问题:
numbers[-10:][::-1]
一切都好
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5]
但我想知道为什么 numbers[-10::-1]在我的情况下不能按预期工作,如果有办法通过一个片获得正确的结果?