我是Python的新手。
我难以理解其中一种理解
list = []
list2 = []
for j in 'def':
for i in 'abc':
list.append(i+j)
list2 = list
print (list)
你能帮我转换for循环中的理解吗?
我没有通过for循环获得所需的结果:
([[‘ad’, ‘bd’, ‘cd’], [‘ae’, ‘be’, ‘ce’], [‘af’, ‘bf’, ‘cf’]])
以上是我用for循环的尝试。我错过了什么。下面应该是我想要的for循环的理想结果。
l = list(1, "sunflower", 3)
for(i in seq_along(l)) {
this.e = l[[i]]
test <- try(this.e + 1, silent=TRUE)
calc <- if(class(test) %in% 'try-error') {next} else {this.e + 1}
print(calc)
}
[1] 2
[1] 4
提前致谢。
答案 0 :(得分:3)
解开这样一种理解的最简单方法是一次理解它并将 写成循环。所以:
[[i+j for i in "abc"] for j in "def"]
变为:
outer_list = []
for j in "def":
outer_list.append([i + j for i in "abc"])
好吧,很酷。现在我们已经摆脱了外在的理解,所以我们可以解开下面的内心理解:
outer_list = []
for j in "def":
inner_list = []
for i in "abc":
inner_list.append(i + j)
outer_list.append(inner_list)
答案 1 :(得分:1)
对于这种理解的循环将如下所示
result = []
for j in "def":
r = []
for i in "abc":
r.append(i+j)
result.append(r)
答案 2 :(得分:1)
a = 'abc'
b = 'def'
>>> [[x+y for x in a]for y in b]
[['ad', 'bd', 'cd'], ['ae', 'be', 'ce'], ['af', 'bf', 'cf']]
>>> for y in b:
... for x in a:
... print x+y,
...
ad bd cd ae be ce af bf cf