我有一个清单:
df = [['apple', 'red', '0.2'], ['apple', 'green', '8.9'], ['apple', 'brown', '2.9'],
['guava', 'green', '1.9'], ['guava', 'yellow', '4.9'], ['guava', 'light green', '2.3']]
考虑到第一个子列表的值是唯一的条件,从这里我只想从第一个不同的子列表中获取前2个项目。
预期产量:
df = [['apple', 'red'], ['guava', 'green']]
到目前为止的代码:
dummy_list = []
for item in df:
if item[0] not in dummy_list:
dummy_list.append(item[:2])
这不起作用,并附加所有元素。任何对此的帮助
或更聪明:使用dict并setdefault
仅添加第一个映射
result = {}
for value in df:
result.setdefault(value[0], value[:2])
result = list(result.values())
print(result)
或者,您可以对添加的键进行计数以避免重复(在单独的列表中)
keys = set()
result = []
for value in df:
if value[0] not in keys:
result.append(value[:2])
keys.add(value[0])
print(result) # [['apple', 'red'], ['guava', 'green']]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句