博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python怎么创建字符串列表_如何在python列表中为每个字符串创建子列表?
阅读量:1530 次
发布时间:2019-04-21

本文共 2116 字,大约阅读时间需要 7 分钟。

例如,我有以下列表:

word1 = ['organization', 'community']

我有一个功能,可以从列表中的单词中获取同义词:

from nltk.corpus import wordnet as wn

def getSynonyms(word1):

synonymList1 = []

for data1 in word1:

wordnetSynset1 = wn.synsets(data1)

tempList1=[]

for synset1 in wordnetSynset1:

synLemmas = synset1.lemma_names()

for i in xrange(len(synLemmas)):

word = synLemmas[i].replace('_',' ')

if word not in tempList1:

tempList1.append(word)

synonymList1.append(tempList1)

return synonymList1

syn1 = getSynonyms(word1)

print syn1

这是输出:

[[u'organization', u'organisation', u'arrangement', u'system', u'administration', u'governance', u'governing body', u'establishment', u'brass', u'constitution', u'formation'], [u'community', u'community of interests', u'residential district', u'residential area', u'biotic community']]

^上面的输出显示了'organization'和的每个同义词集都'community'在列表内列出。然后我降低list的级别:

newlist1 = [val for sublist in syn1 for val in sublist]

这是输出:

[u'organization', u'organisation', u'arrangement', u'system', u'administration', u'governance', u'governing body', u'establishment', u'brass', u'constitution', u'formation', u'community', u'community of interests', u'residential district', u'residential area', u'biotic community']

^现在所有同义词集保持相同的字符串,没有子列表。而我现在想要做的是使所有的同义词newlist1集互相列出。我希望输出将是这样的:

[[u'organization'], [u'organisation'], [u'arrangement'], [u'system'], [u'administration'], [u'governance'], [u'governing body'], [u'establishment'], [u'brass'], [u'constitution'], [u'formation'], [u'community'], [u'community of interests'], [u'residential district'], [u'residential area'], [u'biotic community']]

我正在尝试此代码:

uplist1 = [[] for x in syn1]

uplist1.extend(syn1)

print uplist1

但是结果不是我所期望的:

[[], [], [u'organization', u'organisation', u'arrangement', u'system', u'administration', u'governance', u'governing body', u'establishment', u'brass', u'constitution', u'formation'], [u'community', u'community of interests', u'residential district', u'residential area', u'biotic community']]

它显示了两个空列表和两个同义集的两个列表'organization'和'community'

如何使每个同义词集的子列表?

解决方案

像这样吗

uplist1 = []

for i in syn1:

uplist1.append([i])

编辑:

与列表理解等效:

uplist1 = [[i] for i in syn1]

转载地址:http://uekdy.baihongyu.com/

你可能感兴趣的文章
【转】STO跨公司转储流程
查看>>
【转】SAP地产业正青春
查看>>
根据指定行数拆分内表
查看>>
根据长文本拆分至内表
查看>>
隐藏标准选择界面按钮
查看>>
【转】排除被冲销的物料凭证
查看>>
防止程序重复执行
查看>>
使用程序创建数据库表
查看>>
备份表到存在的表或者自动新建表
查看>>
Win系统自定义屏保教程
查看>>
[性能] SAP销售订单取数逻辑优化---索引表
查看>>
BADI EXIT等增强报W警告类消息
查看>>
SAP 凭证冲销可以使用BAPI_ACC_DOCUMENT_REV_POST或者BDC录制FB08来做
查看>>
Informatica 初学日记全
查看>>
几种 ETL 工具的比较(Kettle,Talend,Informatica 等)
查看>>
ETL工具大全
查看>>
ETL安装前的准备 - 数据库创建方法
查看>>
ora-12528 : message 12528 not found; product=RDBMS ; facility=ora
查看>>
Dialog中Screen logic的处理逻辑原则
查看>>
【推荐】SAP关闭正在执行的缓慢的程序
查看>>