繁体   English   中英

从列表列表中提取单词并将它们存储在python中的单独变量中

[英]Extract words from list of lists and store them in a separate variable in python

我有这个列表列表,我想从列表中提取每个单词并将它们存储在一个单独的变量中

keywords=[[('tarifa',), ('mantenimiento',), ('mensual',)],
[('tasa',), ('anual',)],
[('tasa',)],
[('int ',)],
[('comision',)],
[('seguro',), ('bancaria',)],
[('seguro',), ('generales',)],
[('mi salud',), ('unific',)]]

因此,对于每个列表,您应该有 kw 变量,例如对于第一个列表: kw1='tarifa' kw2='mantenimiento' kw3 = 'mensual' 对于第二个列表 kw1='tasa' kw2='anual' 等等

我有这个代码:

for i in range(len(keywords)):
    for j in range(len(keywords[i])):
        print("'"+keywords[i][j][0]+"'",end=",")
    print()

但它只返回这个:

'tarifa','mantenimiento','mensual',
'tasa','anual',
'tasa',
'int ',
'comision',
'seguro','bancaria',
'seguro','generales',
'mi salud','unific',

不确定您的意思是将它们存储在单独的变量中。 您可以使用 python 字典将值与键(或变量)相关联。 这是一个示例,我们提取每个元组列表并转换为字典,其中键以“kw”开头,后跟其索引和关联的元组作为值。
希望这可以帮助。

>>> l = [[('tarifa',), ('mantenimiento',), ('mensual',)],
... [('tasa',), ('anual',)],
... [('tasa',)],
... [('int ',)],
... [('comision',)],
... [('seguro',), ('bancaria',)],
... [('seguro',), ('generales',)],
... [('mi salud',), ('unific',)]]
>>> z = []
>>> for x in l:
...   y = [item[0] for item in x]
...   z.append({f'kw{i}':v for i,v in enumerate(y)})
... 
>>> z
[{'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}, {'kw0': 'mi salud', 'kw1': 'unific'}]
>>> 

更新:

基于讨论。 您不需要将元组列表转换为变量。 只需转换为字符串列表并遍历每个字符串以将列表中的字符串与数据帧中的文本匹配。 这是包含列表列表中的一些单词的示例文本。

sents =
['Lorem tarifa ipsum dolor sit amet consectetur adipiscing elit', 'Aenean eget neque feugiat sem porta lobortis.', 'Sed molestie mantenimiento nunc sagittis, tincidunt tortor eget tristique massa.', 'Proin imperdiet velit eu bibendum volutpat.', 'Cras ullamcorper quam non urna  mensual vestibulum gravida', 'Maecenas semper ante in placerat tristique']

然后我们将元组列表转换为字符串列表,并在上面的文本列表中迭代和搜索单词。 您可以根据自己的需要进行调整。 这是为了提供一个解决方案的想法。

>>> for z in [ [y[0] for y in x] for x in keywords ]:
...   for w in z:
...     for s in sents:
...       if w in s:
...         print(f"found '{w}' in '{s}'")
... 
found 'tarifa' in 'Lorem tarifa ipsum dolor sit amet consectetur adipiscing elit'
found 'mantenimiento' in 'Sed molestie mantenimiento nunc sagittis, tincidunt tortor eget tristique massa.'
found 'mensual' in 'Cras ullamcorper quam non urna  mensual vestibulum gravida'
 kw =[(' tarifa '),  (' mantenimiento '),  (' mensual ')]

 kw1 = kw[1]

 kw2 = kw[0]

 print(kw2)

output: tarifa

您似乎对python很陌生,所以我会让您更容易,请通过整理您想要提供新变量的列表的特定索引号来使用索引功能。 尝试我的示例并删除您在列表中使用的逗号,当您运行它时会产生错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM