程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python:第 3 级嵌套列表理解未按预期运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python:第 3 级嵌套列表理解未按预期运行?

开发过程中遇到Python:第 3 级嵌套列表理解未按预期运行的问题如何解决?下面主要结合日常开发的经验,给出你关于Python:第 3 级嵌套列表理解未按预期运行的解决方法建议,希望对你解决Python:第 3 级嵌套列表理解未按预期运行有所启发或帮助;

我正在尝试为字符“a”、“b”和“c”获得长度为 1、2 和 3 的所有可能的排列@H_675_3@

from itertools import permutations

a = ['a','b','c']
perm1 = permutations(a,1)
perm2 = permutations(a,2)
perm3 = permutations(a,3)
p_List = []
p_List.extend(List(perm1))    
p_List.extend(List(perm2))
p_List.extend(List(perm3))

str = [[j for j in i] for i in p_List]

print(str[3])

此时一切都在预料之中@H_675_3@

当我将 str = line 修改为这个 str = [[[''.join(k) for k in j] for j in i] for i in p_List] 时,我希望得到一个字符串列表,其中每个排列都是一个没有逗号的字符串。例如["abc","a","b","c"] 等,但我得到了一个列表。@H_675_3@

解决方法

第一件事:请不要将 str 设置为变量。@H_675_3@

下面我复制了您的代码,并评论了 p_list 的样子。@H_675_3@

from itertools import permutations

a = ['a','b','c']
perm1 = permutations(a,1)
perm2 = permutations(a,2)
perm3 = permutations(a,3)
p_list = []
p_list.extend(list(perm1))    
p_list.extend(list(perm2))
p_list.extend(list(perm3))

# p_list = [('a',),('b',('c',('a','b'),'c'),'a'),'c','a','a')]

如您所见,您的数据结构不是第 3 级:它只是一个元组列表。现在我认为很明显你的列表理解只是迭代元组的每个元素,而不是像这样加入它们:@H_675_3@

result = [''.join(n) for n in p_list]
# result = ['a','ab','ac','ba','bc','ca','cb','abc','ACB','BAC','bca','cab','cba']

大佬总结

以上是大佬教程为你收集整理的Python:第 3 级嵌套列表理解未按预期运行全部内容,希望文章能够帮你解决Python:第 3 级嵌套列表理解未按预期运行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。