久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Python 生成器行為

Python generator behaviour(Python 生成器行為)
本文介紹了Python 生成器行為的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

import itertools
ws=[]
subs=[]
set_subs=[]
for i in xrange(int(raw_input())):
    S=raw_input()
    l=len(S)
    subs.append(S[i:j+1] for i in xrange(l) for j in xrange(i,l))

輸入:

2
aab
aac

現在 subs[0]subs[1] 都給了我相同的結果.

now both subs[0] and subs[1] give me same result.

print list(subs[0])
>>>['a','aa','aac','a','ac','c']
print list(subs[1])
>>>['a','aa','aac','a','ac','c']

list(subs[0]) 應該是 ['a','aa','aab','a','ab','b']

我隱約明白為什么會這樣.我該怎么做才能使 subs[0]subs[1] 真正不同.

I vaguely understand why this is happening. What do I do to make subs[0] and subs[1] actually different.

注意:換行

subs.append(S[i:j+1] for i in xrange(l) for j in xrange(i,l))

subs.append([S[i:j+1] for i in xrange(l) for j in xrange(i,l)])

不是一種選擇

推薦答案

http://docs.python.org/reference/expressions.html#generator-expressions

生成器表達式中使用的變量在以下情況下被延遲計算為生成器對象調用 __next__() 方法(在同一像普通發電機一樣時尚).但是,最左邊的 for 子句是立即評估,以便可以看到它產生的錯誤在處理生成器的代碼中出現任何其他可能的錯誤之前表達.無法立即評估后續 for 子句因為它們可能依賴于前面的 for 循環.

Variables used in the generator expression are evaluated lazily when the __next__() method is called for generator object (in the same fashion as normal generators). However, the leftmost for clause is immediately evaluated, so that an error produced by it can be seen before any other possible error in the code that handles the generator expression. Subsequent for clauses cannot be evaluated immediately since they may depend on the previous for loop.

S[i:j+1] 在您執行生成器時進行評估,此時 S 具有最新值.

S[i:j+1] is evaluated when you execute the generator, and at that point S has the latest value.

您可以改用普通的生成器.現在 sssubgen 來說是本地的:

You can use a normal generator instead. Now ss is local to subgen:

import itertools

def subgen(ss):
    l=len(ss)
    for i in xrange(l):
        for j in xrange(i,l):
            yield ss[i:j+1]

subs=[]
for i in xrange(int(raw_input())):
    S=raw_input()
    subs.append(subgen(S))

這篇關于Python 生成器行為的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to draw a rectangle around a region of interest in python(如何在python中的感興趣區域周圍繪制一個矩形)
How can I detect and track people using OpenCV?(如何使用 OpenCV 檢測和跟蹤人員?)
How to apply threshold within multiple rectangular bounding boxes in an image?(如何在圖像的多個矩形邊界框中應用閾值?)
How can I download a specific part of Coco Dataset?(如何下載 Coco Dataset 的特定部分?)
Detect image orientation angle based on text direction(根據文本方向檢測圖像方向角度)
Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 檢測圖像中矩形的中心和角度)
主站蜘蛛池模板: 精品一区二区免费视频 | 久久久网 | 亚洲一区二区国产 | 国产精品美女久久久久aⅴ国产馆 | 老司机成人在线 | 91福利电影在线观看 | 金莲网 | 九九热精品在线视频 | 国产美女h视频 | 亚洲精品美女 | 久久一区二区视频 | 亚洲网站在线观看 | 日韩欧美在线免费 | av黄色国产 | 国产xxx在线观看 | 国产农村一级国产农村 | 91国产在线播放 | 色爽女| 亚洲精品一区二区三区在线 | 亚洲热在线视频 | 久久精品久久久久久 | av在线成人 | 日本中文在线视频 | 国产精品毛片一区二区在线看 | 日韩精品一区二区三区视频播放 | 国产精品高 | 日韩欧美精品一区 | www.久草.com | 久久久久久999 | 91免费在线| 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产欧美精品一区二区色综合 | 在线看亚洲 | 久久高清国产视频 | 成年无码av片在线 | 久久久青草婷婷精品综合日韩 | 日韩中文字幕一区 | 99精品久久久国产一区二区三 | 久久精品国产免费高清 | 麻豆精品一区二区三区在线观看 | 国产成人精品在线 |