我有一个列表变量my_list
,其中包含字典条目。
my_list = [{'tweet':'tweet_text1','author':'twitter_name1'},
{'tweet':'tweet_text2','author':'twitter_name2'},
{'tweet':'tweet_text3','author':'twitter_name3'}]
我需要过滤掉键'tweet'
下少于10个字符的所有结果,并将这些值存储在新变量my_list_cleaned
我还需要知道已删除的项目数,并分别打印。
我编写了一个函数,该函数在另一节中也做了类似的工作,但是它似乎没有工作列表
def filters(x):
return [a for a in x.split() if len(a) > 9]
答案 0 :(得分:1)
使用列表理解删除所有短推文。
my_list_cleaned = [v for v in my_list if len(v['tweet']) >= 10]
您可以通过比较列表的长度来获取删除的推文数量
removed = len(my_list) - len(my_list_cleaned)
答案 1 :(得分:0)
为什么不只遍历my_list中的每个元素并检查“ tweet”键?像这样:
def filter(l):
for d in l:
if(len(d['tweet']) > 10):
#do something
答案 2 :(得分:0)
您只需遍历列表并检查给定键“ tweet”的值。
def f(l):
r = []
for d in l:
if len(d['tweet'])<=10:
continue
r.append(d)
return r
您可以使用上述功能返回列表。从那里,您将要制作另一个函数,将原始len
gth与新len
gth进行比较。...diff = len(_old) - len(_new)
。