将列表中的元素按不同的对数分组

2024-06-28 19:10:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题要问。 我有一个bs4.element.tag的列表,比如[[tag1,tag2,tag3],[tag4,tag5],[tag6],[tag7,tag8,tag9,tag10]]。所以每个子列表都包含了不同电影中演员的名字。所以第一个子列表有三个演员,第二个子列表有两个演员,依此类推

我要做的是通过调用每个子列表的每个元素的.text函数来删除bs4.element.Tag。然后我将结果附加到一个新列表中,如下所示:[str1,str2,str3,str4,str5,str6,str7,str8,str9,str10]。虽然这不是我想要的结果。我想把新名单上的演员按原来的名单分组

所以理想的结果应该是:[[str1,str2,str3],[str4,str5],[str6],[str7,str8,str9,str10]] 其中str=每个参与者的字符串名称

你知道我怎样才能做到这一点吗

我的例子(按照图片):

list of bs4.element.tags

list of actor names


Tags: 列表element名单演员bs4str1str2str3
2条回答

你可以按照@Ezer K的建议做列表理解。但我个人更喜欢地图功能

actor_list = []
for tags in tag_list:
    actor_list.append(list(map(lambda x: x.text, tags))) 

在没有看到代码的情况下很难完全完成,但是您需要遍历元素标记,将每个元素的内容提取到列表中,然后将其附加到最终列表中。比如:

final_list = []
for tag in tags_list:
    actors = tag.find_all('a')
    actors_list = [ x.text.strip() for x in actors ]
    final_list.append(actors_list)

相关问题 更多 >