gpt4 book ai didi

python - 如果子列表的第一个元素在 Python 中是唯一的,则从第一个子列表中获取前两项

转载 作者:行者123 更新时间:2023-12-03 20:25:15 26 4
gpt4 key购买 nike

我有一个 list :

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])
这不起作用并附加所有元素。请对此提供任何帮助

最佳答案

或者更聪明:使用字典和 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']]

关于python - 如果子列表的第一个元素在 Python 中是唯一的,则从第一个子列表中获取前两项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62884154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com