如何从位置列表中打印单词(和标点符号)

2024-06-26 01:32:51 发布

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

(删除了停止复制的代码) 现在它将创建一个包含每个单词位置的文本文件,例如

“你好,我叫米卡,你好”

列表中的位置是[1,2,3,4,5,6,2,1],它也会列出每个单词/标点符号,但只列出一次,所以在本例中是这样的

['Hello',',','my','name','is','mika']

现在唯一能做的就是用列表中的那些位置把单词放回到原来的句子里,而我似乎做不到。 我确实尝试过搜索其他帖子,但似乎只有其他人想知道单词的位置,而不是想用这些位置把单词放回句子中。 我还认为可以这样做:

for i in range(len(readlines[1])):

但我真的不知道该怎么做。你知道吗

编辑:这个问题现在已经被@Abhishek解决了,谢谢。你知道吗


Tags: 代码nameinhello列表forismy
3条回答
indices = [1,2,3,4,5,6,2,1]
namelst = ['Hello', ',', 'my', 'name', 'is', 'mika']

newstr = " ".join([namelst[x-1] for x in indices])
print (newstr)

输出:

>> 'Hello , my name is mika , Hello'

我同意会有一些偏移/空格,但它会再次给你完整的句子

代码:(将删除标点后的空格)

postitions = [1,2,3,4,5,6,2,1]
wordslist = ['Hello', ',', 'my', 'name', 'is', 'mika']

recreated=''
for i in indices:
     w = namelst[i-1]
     if w not in ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]:
          w = ' ' + w
     recreated = (recreated + w).strip()

print (recreated)

输出:

C:\Users\dinesh_pundkar\Desktop>python c.py
Hello, my name is mika, Hello
C:\Users\dinesh_pundkar\Desktop>

您可以使用numpy来执行此操作。你知道吗

>>> import numpy as np
>>> indices = np.array([1,2,3,4,5,6,2,1])
>>> namelst = np.array(['Hello', ',', 'my', 'name', 'is', 'mika', ',', 'Hello'])
>>> ' '.join(namelst[indices-1])
'Hello , my name is mika , Hello'

相关问题 更多 >