【发布时间】:2016-04-20 20:28:22
【问题描述】:
我正在开发一个程序,它可以识别句子中的单个单词,将它们存储在一个列表中,并将原始句子中的每个单词替换为该单词在列表中的位置,因此可以从这些位置重新创建句子此列表中的单词使用序列1,2,3,4,5,6,7,8,9,1,3,9,6,7,8,4,5。到目前为止,我的代码如下,但我需要一些关于如何使其更高效、更短的建议:
import time
sentence = "ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU ASK WHAT YOU CAN DO FOR YOUR COUNTRY"
s = sentence.split()
another = [0]
time.sleep(0.5)
print(sentence)
for count, i in enumerate(s):
if s.count(i) < 2:
another.append(max(another) + 1)
else:
another.append(s.index(i) +1)
another.remove(0)
time.sleep(0.5)
print(another)
【问题讨论】:
-
如果这是您认为可以改进的工作代码,请参阅Code Review。如果没有,请通过minimal reproducible example 澄清问题。
-
好吧,如果你失去了 time.sleep 调用,代码会快一秒,短两行。
-
我知道,我只是想让它更有效率,因为我的朋友设法通过使用 4 行代码得到相同的结果
-
@MrPython 更少的行(本身)不会使代码更高效或更易读。
标签: python string python-3.x