簡體   English   中英

for循環的列表理解

[英]for loop's List Comprehension

如何使小寫的每個符號與數字的每個符號配對?

lowercase = 'abcdef'
digits = '012'

以下返回生成器:

(((i + (lambda x: y)(digits)) for y in digits) for i in lowercase)

我發現生成器周圍的list()[]應該返回正確的內容,但以下任何一種都沒有起作用:

print(list((((i + (lambda x: y)(digits)) for y in digits) for i in lowercase)))
print(list(((i + (lambda x: y)(digits)) for y in digits) for i in lowercase))
print(list((i + (lambda x: y)(digits)) for y in digits) for i in lowercase)
print(list(i + (lambda x: y)(digits) for y in digits) for i in lowercase)
print([(i + (lambda x: y)(digits) for y in digits)] for i in lowercase)
[<generator object <genexpr>.<genexpr> at 0x03329D80>, <generator object <genexpr>.<genexpr> at 0x03329DB0>, <generator object <genexpr>.<genexpr> at 0x03329DE0>, <generator object <genexpr>.<genexpr> at 0x03329E10>, <generator object <genexpr>.<genexpr> at 0x03329E40>, <generator object <genexpr>.<genexpr> at 0x03329E70>]
[<generator object <genexpr>.<genexpr> at 0x03329D80>, <generator object <genexpr>.<genexpr> at 0x03329DB0>, <generator object <genexpr>.<genexpr> at 0x03329DE0>, <generator object <genexpr>.<genexpr> at 0x03329E10>, <generator object <genexpr>.<genexpr> at 0x03329E40>, <generator object <genexpr>.<genexpr> at 0x03329E70>]
<generator object <genexpr> at 0x01605E70>
<generator object <genexpr> at 0x01605E70>
<generator object <genexpr> at 0x01605E70>

如果我正確理解你的話,我想你想要的

lowercase = 'abcdef'
digits = '012'

[letter+digit for letter in lowercase for digit in digits]

>>>['a0', 'a1', 'a2', 'b0', 'b1', 'b2', 'c0', 'c1', 'c2', 'd0', 'd1', 'd2', 'e0', 'e1', 'e2', 'f0', 'f1', 'f2']

用圓括號括起來的列表理解會生成一個生成器,方括號會創建一個列表:Btw。 您可以使用字符串格式重寫lambda表達式:

>>> lowercase = 'abcdef'
>>> digits = '012'
>>> 
>>> ["%s%s" % (c, d) for c in lowercase for d in digits]
['a0', 'a1', 'a2', 'b0', 'b1', 'b2', 'c0', 'c1', 'c2', 'd0', 'd1', 'd2', 'e0', 'e1', 'e2', 'f0', 'f1', 'f2']
>>> ("%s%s" % (c, d) for c in lowercase for d in digits)
<generator object <genexpr> at 0x7f0d558b64b0>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM