真正簡單的問題。我試圖在Python中執行此操作:爲x = str(y)範圍(0,5)....在python中?
for x = str(y) in range(0,5):
這樣y將保存一個整數,並且x將保存所述整數的字符串表示形式。我意識到我可以很容易地將它排成一行 - 只是想要一個快捷方式。
另外,我很好奇我到底在問什麼。我確信在整個論壇中這已經被回答了數十億次,但我不知道要找到什麼。
真正簡單的問題。我試圖在Python中執行此操作:爲x = str(y)範圍(0,5)....在python中?
for x = str(y) in range(0,5):
這樣y將保存一個整數,並且x將保存所述整數的字符串表示形式。我意識到我可以很容易地將它排成一行 - 只是想要一個快捷方式。
另外,我很好奇我到底在問什麼。我確信在整個論壇中這已經被回答了數十億次,但我不知道要找到什麼。
您正在尋找:
for x in (str(y) for y in range(0, 5)):
這不來實例化str
列表(儘管5的開銷元素不是問題)。但是,每當遇到這種情況,我通常只在循環體內使用str(y)
。
不,這不會在循環體中綁定'y'。 –
儘管如此,如果你真的想避免生成列表,那麼你應該使用'xrange'。 –
您可以使用列表理解爲實現這一目標:
str_list = ['%s'%(x) for x in range(0, 5)]
一個簡單的方法是使用map()
功能:
for y in map(str, range(0, 5)):
# ...
的map()
函數採用一個可迭代和穿過第一ARG這是一個可調用的每個ELEM。
你的問題還不清楚,因爲它依賴於一個一段代碼,沒有按」實際上編譯。
for x,y in ((str(z), z) for z in range(0, 5)):
print x, y
上述構建體將分別結合x
並y
到str
和int
,對於每個循環迭代。輸出是:
0 0
1 1
2 2
3 3
4 4
實際上,如果你直接讀取那些不能編譯的代碼段,我用英文描述我試圖用上述代碼完成的事情。如果我的代碼編譯,我不會有問題。 另外,如果你沒有提到我可以如何使它更清晰,這是無益的。我在我的帖子中特別說過,我不知道我在問什麼:/ – user891876
您是否希望能夠在循環體中引用'x'和'y'? –