python-3.x 根据键和值从字典中提取特定元素

quhf5bfb  于 2023-01-22  发布在  Python
关注(0)|答案(1)|浏览(153)
pos_dict = {'I': 'PRON', 'feel': 'VERB', 'that': 'SCONJ', 'there': 'PRON', 'should': 'AUX', 'not': 'PART', 'be': 'AUX', 'fight': 'NOUN', 'in-between': 'ADP', 'marriage': 'NOUN', '.': 'PUNCT'}

contiguous_values = []
temp = []

for key, value in pos_dict.items():
    if value == 'PRON':
        if temp:
            contiguous_values.append(temp)
        temp = [key]
    elif value == 'NOUN':
        temp.append(key)
        contiguous_values.append(temp)
        temp = []
    else:
        if temp:
            temp.append(key)

print(contiguous_values)

从这个pos_dict中,我想提取序列中的单词:-

  • 首先提取的单词应以"PRON"开头,以"NOUN"结尾
  • 但是,如果在第一次发现"名词"之后,句子中几乎没有更多的名词,那么
  • 提取这些名词,直到找到下一个'PRON

模式应该是这个-"那里":"PRON"、"应该":"辅助","非":"零件"、"是":"辅助"、"战斗":"名词"、"中间":"ADP"、"婚姻":"名词"、."":"标点符号"
我想提取这个词--"那里"、"应该"、"不"、"是"、"战斗"、"中间"、"婚姻"、"。"
'位置_dict =('I':"PRON"、"感觉":"动词","那个":"SCONJ","那里":"PRON"、"应该":"辅助","非":"零件"、"是":"辅助"、"战斗":"名词"、"中间":"ADP"、"婚姻":"名词"、."":'标点符号'}
连续值=[]临时值=[]
对于键,pos_dict. items()中的值:如果值=="PRON":如果临时:连续值。附加(临时)临时=[键] elif值=="NOUN":临时。附加(键)连续值。附加(临时)临时=[]否则:如果临时:临时附加(键)
打印(连续值)'
我发现这个-[["我"、"感觉"、"那个"]、["那里"、"应该"、"不"、"是"、"战斗"]、["婚姻"]]
但是,我想要-["那里","应该","不","是","战斗","中间","婚姻"]

3wabscal

3wabscal1#

试试这个-

contiguous_values = []
temp = []

for key, value in pos_dict.items():
    if value != 'PRON':
        temp.append(key)
    else:
        if temp:
            contiguous_values.append(temp)
        temp = []

# check if the last element is not 'PRON'
if temp:
    contiguous_values.append(temp)

print(contiguous_values)

相关问题