【问题标题】:How to expand list comprehensed for loop code?如何扩展循环代码的列表理解?
【发布时间】:2021-03-20 04:33:54
【问题描述】:

我试图将此列表理解代码扩展为非 pythonic 常规方式,但我做不到,有人可以帮忙吗?

charlist = 'abcdefghijklmnopqrstuvwxyz'
complete = []

for current in range(2):
    a = [i for i in charlist]
    for x in range(current):
        a = [y + i for i in charlist for y in a]
        complete += a
print(a)

我试过了 -->

# password --> secr
charlist = 'abcdefghijklmnopqrstuvwxyz'
complete = []
a=[]
for current in range(2):
    for i in charlist:
        a.append(i)
        for x in range(current):
            for i in charlist:
                for y in a:
                    a.append(y+i)
                    complete += a
print(complete)

但没有结果。

【问题讨论】:

  • a = [i for i in charlist] 完成 charlist 的完整迭代,然后迭代 current,但是你有它对于 charlist 的每个字母,它迭代 current。仔细检查第二个和第三个 for 循环的缩进。

标签: python list loops for-loop list-comprehension


【解决方案1】:

a = [i for i in charlist] 用于初始化a,但在尝试初始化a 时,您为其余代码添加了另一层 for 循环。

同样a = [y + i for i in charlist for y in a]在计算后改变a,但是你的代码在循环a时改变a

charlist = 'abcdefghijklmnopqrstuvwxyz'
complete = []
for current in range(2):
    a=[]
    for i in charlist:
        a.append(i)
    for x in range(current):
        new_a = []
        for i in charlist:
            for y in a:
                new_a.append(y+i)
        complete += new_a
        a = new_a

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    相关资源
    最近更新 更多