拆分后在Python中存储数据的位置?



我读取每一行并得到数组结果:

arr = line.split("|"); // [1, 500, ABC]

然后我需要检查每行中每个值[1, 500, ABC]

是否有重复我使用了哪种数据结构?

所以,如果我得到了两个相同的行或者第一个参数相同的行,我应该跳过它:

[1, 500, ABC]
[1, 600, ABC] // Skip it
[2, 500, ABC]
[1, 500, ABC] // skip it

好,那么您想要读取一堆行,将它们按|字符分割,并丢弃第一个字段与第一行的第一个字段相同的行。可以是:

line = next(file)   # process first line
arr = line.split("|")
field0 = arr[0]
data = [arr[:]]     # make sure to take a copy...
for line in file:
arr = line.split("|")
if arr[0] != field0:
data.append(arr[:])   # again append a copy

如果我没有正确理解问题,请纠正我。让我困惑的是,如果两条线是相同的,那么就意味着第一个元素是相同的。这意味着您只需要检查第一个元素是否与之前相同/观察到的较弱条件?

seen_elements = set()
filtered_lines = []
for line in lines:
arr = line.split("|")
if arr[0] in seen_elements:
pass
else:
filtered_lines.append(line)
seen_elements.add(arr[0])

只是想补充一下,如果以后你想快速识别与第一个数字相关的元素,你也可以使用dict.setdefault:

seen_items = dict()
for line in lines:
arr = line.split('|')
seen_items.setdefault(arr[0], arr[1:])

相关内容

最新更新