我正在优化我的脚本并发现此问题:
这里我有一个csv文件,其中第一列只是索引,第二列包含一个字符串(任意长度的句子)。我想创建两个变量" index"和"字符串"它分别包含所有索引和字符串。这是我的代码:
with open(file_name, 'r', encoding="utf8") as csvfile:
train_set_x = csv.reader(csvfile, delimiter=',', quotechar='|')
index = [[c[0],c[1]] for c in train_set_x]
text = [a[1] for a in index]
这可以完成这项工作,但需要2次迭代。我在问是否有更清洁的方法呢? 谢谢
答案 0 :(得分:1)
zip
与可迭代解包一起使用。
index, text = zip(*((c[0], c[1]) for c in train_set_x))
MCVE:
In [152]: x, y = zip(*[(1, 2), (3, 4), (5, 6)])
In [153]: x
Out[153]: (1, 3, 5)
In [154]: y
Out[154]: (2, 4, 6)