考虑这段代码:
csvreader = csv.reader(filter(lambda row: row[0] != '#', fcsv), delimiter= '\t')
csvrs =[[row[2], row[7]] for row in csvreader]
元素row[7]
是由;
分隔的字符串,我想要做的不是将整个row[7]
放在csvrs中,而只将;
分割成一个分割的部分
比如说:
row[7] = '123;457;789;1011'
我只想在csvrs里面的第二个位置(在这种情况下是457),我希望每次都过滤掉其他所有部分。我正在尝试拆分,没有结果保持列表理解。
答案 0 :(得分:1)
只需在理解中进行拆分,然后为第二项
获取[1]
csvrs =[[row[2], row[7].split(';')[1]] for row in csvreader]
答案 1 :(得分:1)
def get_second_col(row, delimiter=';'):
try:
return row.split(delimeter)[1]
except IndexError:
return None
csvrs =[[row[2], get_second_col(row[7])] for row in csvreader]