如何在Python中实现等价性?

2024-04-23 17:50:35 发布

您现在位置:Python中文网/ 问答频道 /正文

对我来说很难,我有一个csv有两列

4,8
5,64
6,12
7,54
8,2

。。。超过50个条目

以及具有一列的第二CSV(来自第一CSV的第二列条目)。你知道吗

我试图从我的第一个csv中找到(并写入)相应的条目:

54,7
8,4
12,6
8,4
64,5
54,7
...

Tags: csv条目
2条回答

好吧。。。如果您有两个csv文件,而第二个文件有一列B值:

with open('test.csv') as f:
    line_values = [line.strip().split(',') for line in f.readlines()]
transposed_values = dict([(v.strip(), k) for k, v in line_values])
with open('test2.csv') as fi:
    with open('out.csv', 'w') as fo:
        for line in fi.readlines():
            B = line.strip()
            try:
                print >>fo, '{}, {}'.format(B, transposed_values[B])
            except KeyError:
                print >>fo, '{}, ?'.format(B)

输入文件test.csv

4, 8
5, 64
6, 12
7, 54
8, 2

输入文件test2.csv

54
8
12
8
64
54

输出文件out.csv

54, 7
8, 4
12, 6
8, 4
64, 5
54, 7

我不知道您从哪里得到要编写的CSV文件的A列,但我们假设这些值按顺序排列在一个As列表中。然后:

import csv

d = {}
with open('toread.csv') as f:
    r = csv.reader(f)
    for a, b in r:
        d[b] = a

with open('towrite.csv', 'w') as f:
    w = csv.writer(f)
    for a in As:
        w.writerow(a, d[a])

相关问题 更多 >