【发布时间】:2020-02-24 20:52:25
【问题描述】:
所以我有一个很长的项目列表,我需要为所有匹配的项目创建一个新列表。 这是一个简化的示例:
Mylist = [cat, cat, dog, dog, bear, camel, camel, camel]
所以我需要达到一个点:
Catlist = [cat,cat]
Doglist = [dog, dog]
Bearlist = [bear]
Camellist = [camel, camel, camel]
但诀窍是 Mylist 中的值会根据调用的数据集而改变,所以我永远不确定内容是什么。我只需要列出匹配的内容。
我原来的问题得到了回答;但是,我需要稍微扩大我的问题范围。假设我现在有一个名为 animal_data 的矩阵,它由 4 列组成:Animal、Xlocation、Ylocation 和 Zlocation,第一列包含原始 MyList 输入,其余三列包含字段中每只动物的 gps 位置.如何根据动物的类型将矩阵分成块?这是我目前所拥有的:
setofthis = set(animal_data[:,0])
IDS = {
}
for one in setofthis:
ids = [one for i in animal_data[:,0] if i == one]
IDS.update({one:ids})
for one in result:
print(one, ":", IDS[one])
输入的数据集总是在变化,因此并非所有相同的动物每次都会出现在数据集中,也可能会将不同的动物添加到数据集中。
【问题讨论】:
-
欢迎来到 StackOverflow!请edit您的帖子包含您已经在解决方案尝试中编写的代码,以及有关您的数据集或其他因素的任何其他相关信息。
标签: python list loops dataset slice