wordnum = [14, 1, 7, 0, 0, 11]
sentNum = [4, 2, 8, 6, 5, 8]
findtext = [u'I', u'our', u'it', u'The villa', u'It', u'the large main pool']
sentss2 = [
['When', 'planning', 'our', 'return', 'trip', 'to', 'Kauai', ',', 'husband', 'and', 'I', 'were', 'happy', 'to', 'read', 'that', 'all', 'the', 'renovations', 'to', 'the', 'Koloa', 'Landing', 'Resort', 'were', 'completed', '.'],
['We', 'then', 'went', 'ahead', 'and', 'booked', 'a', 'deluxe', 'studio', 'for', 'mid-October', '.'],
['Upon', 'our', 'check', 'in', 'after', 'a', 'long', 'flight', 'and', 'dark', 'rainy', 'drive', 'from', 'the', 'airport', ',', 'we', 'were', 'greeted', 'warmly', 'at', 'the', 'front', 'desk', '.'],
['While', 'we', 'are', 'platinum', 'status', ',', 'we', 'were', "n't", 'expecting', 'a', 'room', 'upgrade', ',', 'but', 'much', 'to', 'our', 'delight', ',', 'was', 'advised', 'by', 'the', 'clerk', 'that', 'we', 'received', 'one', '.'],
['However', ',', 'it', 'was', "n't", 'until', 'we', 'got', 'to', 'our', 'room', ',', 'or', 'should', 'I', 'say', 'villa', ',', 'how', 'nice', 'the', 'upgrade', 'was', '.'],
['It', 'was', 'a', 'one', 'bedroom', ',', '1', '1/2', 'bath', ',', 'almost', '1000', 'square', 'feet', 'corner', 'villa', 'with', '2', 'full', 'walls', 'of', 'windows', 'in', 'the', 'lovely', 'living', 'room', 'alone', '.'],
['The', 'villa', 'was', 'beautiful', '.'],
['Our', 'view', 'of', 'the', 'smaller', 'family', 'pool', 'and', 'soccer', 'field', 'was', 'so', 'nice', '.'],
['Really', 'enjoyed', 'being', 'in', 'this', 'area', 'as', 'it', "'s", 'quieter', 'than', 'the', 'large', 'main', 'pool', '.']
]
我有一个for循环来分配值并替换sentss2中的现有值,并将第一个值降低findtext
。我写了一个for循环来做这个并且它完美地工作:
for aa,bb,cc in zip(sentNum,findtext,wordnum):
sentss2[aa][cc]=findtext[0].lower()
现在我想在一个内联语句中编写它来执行这个耗时更快的循环。如果我像下面那样编写内联循环:
[(sentss2[aa][cc]=findtext[0],findtext[0].lower())[0] for aa,cc in zip(sentNum,wordnum)]
我收到无效的语法错误:
File "<ipython-input-142-82f373e08c0a>", line 1
[(sentss2[aa][cc]=findtext[0],findtext[0].lower())[0] for aa,cc in zip(sentNum,wordnum)]
^
SyntaxError: invalid syntax
任何帮助如何编写此内联for
循环?
答案 0 :(得分:2)
您无法在列表理解中进行分配。
无论如何,[...for...]
列表理解并不比常规for
循环快。无论是一行还是两行,它都是for
循环。双行版本具有语法上有效的优点。
坚持原始循环。