如何在Python列表中找到重复项并创建另一个重复项列表?该列表仅包含整数.
有谁知道如何在python列表中获取重复项的索引位置?我试过这样做,它只给我一个列表中项目第一次出现的索引.
List = ['A', 'B', 'A', 'C', 'E']
Run Code Online (Sandbox Code Playgroud)
我希望它能给我:
index 0: A
index 2: A
Run Code Online (Sandbox Code Playgroud) 我有一个包含重复元素的列表:
list_a=[1,2,3,5,6,7,5,2]
tmp=[]
for i in list_a:
if tmp.__contains__(i):
print i
else:
tmp.append(i)
Run Code Online (Sandbox Code Playgroud)
我已经使用上面的代码来查找重复的元素list_a.我不想从列表中删除元素.
但我想在这里使用for循环.通常C/C++我们这样使用我猜:
for (int i=0;i<=list_a.length;i++)
for (int j=i+1;j<=list_a.length;j++)
if (list_a[i]==list_a[j])
print list_a[i]
Run Code Online (Sandbox Code Playgroud)
我们如何在Python中使用这样的?
for i in list_a:
for j in list_a[1:]:
....
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的代码.但它解决方案有误.我不知道如何增加价值j.
如果给出一个外群,我如何为一组物种生成所有可能的Newick树排列?
对于那些不知道Newick树格式的人,可以在以下网址找到一个很好的描述:https: //en.wikipedia.org/wiki/Newick_format
我想在给出一个外群的情况下为一组物种创建所有可能的Newick树排列.我期望处理的叶节点的数量很可能是4,5或6个叶节点.
允许"软"和"硬"多面体. https://en.wikipedia.org/wiki/Polytomy#Soft_polytomies_vs._hard_polytomies https://biology.stackexchange.com/questions/23667/evidence-discussions-of-hard-polytomy
下面显示的是理想输出,"E"设置为outgroup
理想输出:
((("A","B","C"),("D"),("E"));
((("A","B","D"),("C"),("E"));
((("A","C","D"),("B"),("E"));
((("B","C","D"),("A"),("E"));
((("A","B")("C","D"),("E"));
((("A","C")("B","D"),("E"));
((("B","C")("A","D"),("E"));
(("A","B","C","D"),("E"));
(((("A","B"),"C"),"D"),("E"));
Run Code Online (Sandbox Code Playgroud)
但是,我使用itertools带来的任何可能的解决方案,特别是itertools.permutations,都遇到了等效输出的问题.我想出的最后一个想法涉及下面显示的等效输出.
等效输出:
((("C","B","A"),("D"),("E"));
((("C","A","B"),("D"),("E"));
((("A","C","B"),("D"),("E"));
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案的开始.但是,除了itertools之外,我现在还不确定该怎么回事.
import itertools
def Newick_Permutation_Generator(list_of_species, name_of_outgroup)
permutations_list =(list(itertools.permutations(["A","B","C","D","E"])))
for given_permutation in permutations_list:
process(given_permutation)
Newick_Permutation_Generator(["A","B","C","D","E"], "E")
Run Code Online (Sandbox Code Playgroud) 以下代码简单而清晰,在编译时会产生错误:
import string
import collections
#create dictionary with alphabets as keys, and empty values
list = ['aema', 'airplane', 'amend']
gen_dict = dict.fromkeys(string.ascii_lowercase, '')
gen_dict = collections.defaultdict(list)
for x in list:
gen_dict['a'].append(x)
Run Code Online (Sandbox Code Playgroud)
并产生的错误是:
Traceback (most recent call last):
File "indexdict.py", line 14, in <module>
gen_dict = collections.defaultdict(list)
TypeError: first argument must be callable
Run Code Online (Sandbox Code Playgroud)
任何的想法?提前致谢
python ×5
duplicates ×2
defaultdict ×1
dictionary ×1
iterator ×1
list ×1
loops ×1
permutation ×1