Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据条件删除列表中的元素_Python_List - Fatal编程技术网

Python 根据条件删除列表中的元素

Python 根据条件删除列表中的元素,python,list,Python,List,我有一个元素列表,我想从中删除所有列表中计数小于或等于2的元素 例如: A = [['a','b','c'],['b','d'],['c','d','e'],['c','e','f'],['b','c','e','g']] 我想从a中删除'a','d','f','g',并将其余的存储在B中,以便列表变成: B = [['b','c'],['b'],['c','e'],['c','e'],['b','c','e']] 我创建了一个字典,它将存储所有元素的计数,基于此,我想删除计数小于或等于2的

我有一个元素列表,我想从中删除所有列表中计数小于或等于2的元素

例如:

A = [['a','b','c'],['b','d'],['c','d','e'],['c','e','f'],['b','c','e','g']]
我想从
a
中删除
'a'
'd'
'f'
'g'
,并将其余的存储在
B
中,以便列表变成:

B = [['b','c'],['b'],['c','e'],['c','e'],['b','c','e']]
我创建了一个字典,它将存储所有元素的计数,基于此,我想删除计数小于或等于2的元素

下面是到目前为止我编写的代码

for i in range(len(A)):
    for words in A[i]:
        word_count[words] +=1
    B = [A[i] for i in range(len(A)) if word_count[words]<2]
对于范围内的i(len(A)):
对于[i]中的词语:
字数[字数]+=1

B=[A[i]表示范围内的i(len(A)),如果单词数[words]可以使用
集合。计数器

from collections import Counter
import itertools
A = [['a','b','c'],['b','d'],['c','d','e'],['c','e','f'],['b','c','e','g']]
c = Counter(itertools.chain(*A))
new_a = [[b for b in i if c[b] > 2] for i in A]
输出:

[['b', 'c'], ['b'], ['c', 'e'], ['c', 'e'], ['b', 'c', 'e']]

在将新的键添加到词典中之前,必须检查该键是否存在。如果不存在,只需将键添加到词典中即可。否则,请更新该键的值

A = [['a','b','c'],['b','d'],['c','d','e'],['c','e','f'],['b','c','e','g']]
word_count = {}
for i in range(len(A)):
  for words in A[i]:
    if words not in word_count:
      word_count[words] = 0
    word_count[words] += 1
然后使用创建的字典过滤初始列表

B = [[x for x in A[i] if word_count[x] > 2] for i in range(len(A))]
print(B)
输出

[['b', 'c'], ['b'], ['c', 'e'], ['c', 'e'], ['b', 'c', 'e']]

如果单词不在word\u count中,则使用
的小快捷方式:word\u count[words]=0
-->
word\u count.setdefault(单词,0)
@BcK谢谢你的帮助。这对我很有用。另外,在同一个列表中,如果我想将百分比存储在c中,然后选择大于40的百分比,我该如何做,即将百分比存储在c中。
total=sum(c.values());对于k,v在c.items():c[k]= V/ToS/<代码>这样的工作应该是“ANKITAPAPATIKIKE”,这是一个不寻常的很好的答案,我已经改变了它。作为一种改进,考虑使用<代码>链。