我下面的代码打开一个csv并将其放入一个字典,其中的列是列表。存在重复的密钥,无法更改。关键字是第[1]行的“帐号”列。现在,如果在第[8]行找到“CITY”字符串,则该键和值将被删除。我该如何写这个,以便同一个键的所有其他实例(以及相应的值)也将被删除?在
with open('c:\\file.csv', 'rb') as f:
reader = csv.reader(f)
result = collections.defaultdict(list)
for row in reader:
key = row[1]
result[key].append([row[0], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12]])
if 'CITY' in row[8]:
result.pop(key)
下面是一个输入示例:
^{pr2}$下面是我想要的输出:
3929, 58586, 5555551212, August, IL, 62305, Steve, Johnson, None, Max, Folder, 22, 69
因此,由于第一行中找到了“City”,所以具有56794帐号的两行都将被删除。在
如果我没听错的话,如果一个键的任何一行在第8位包含“CITY”,那么就需要删除该键。在这种情况下,我认为您最好不要单独跟踪这些“不需要的”键,类似这样:
其思想是维护一个要排除的键的列表(或在本例中为一组键)。如果遇到要排除的新键,请将其添加到集中并删除匹配结果(如果有)。如果遇到键在排除集中的行,则根本不将该行添加到结果中。在
相关问题 更多 >
编程相关推荐