对于示例中显示的列表:
my_list = ['hi', 'babe', 'hi', 'babe', 'key', 'key']
output = [0, 1, 4]
或
output =[1, 1, 0, 0, 1, 0]
答案 0 :(得分:2)
将列表转到集合,然后使用.index
:
output = [my_list.index(elem) for elem in set(my_list)]
由于set
是无序的,因此您可能需要对输出进行排序:
output = sorted(my_list.index(elem) for elem in set(my_list))
完整示例:
>>> my_list = ['hi', 'babe', 'hi', 'babe', 'key', 'key']
>>> output = sorted(my_list.index(elem) for elem in set(my_list))
>>> output
[0, 1, 4]
答案 1 :(得分:2)
您可以使用ArFragment arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.getArSceneView().getPlaneRenderer().setVisible(false);
来跟踪已经看到的元素,并使用循环或列表推导来获取每个元素是否为同类中的第一个。然后,使用defaultConfig {
...
multiDexEnabled true
...
}
获取索引。
set
答案 2 :(得分:2)
答案 3 :(得分:0)
该列表具有内置函数.index:
my_list = ['hi', 'babe', 'hi', 'babe', 'key', 'key']
my_list.index('hi')
>>>0
.index按顺序搜索列表,直到找到匹配项并停止。如果您希望需要更多匹配项的索引,则应使用列表推导。首先,您可能希望将文本转换为数字(数字列表不需要),例如hi = 0,babe = 1等。这应该做到(可能是更好的方法):
unique_words_list = []
number_list = []
for word in my_list:
if word not in unique_words_list:
unique_words_list.append(word)
for i in range(len(my_list)):
for j in range(len(unique_words_list)):
if my_list[i]==unique_words_list[j]:
number_list.append(j)
unique_words_list, number_list
>>>(['hi', 'babe', 'key'], [0, 1, 0, 1, 2, 2])
然后您的列表理解:
[i for i, e in enumerate(number_list) if e == 1]
>>>[1,3]
这意味着您在列表的第1和第3位有一个“婴儿”。
可能是更简单的方法!希望这会有所帮助。