Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有计算值和非计算值的元组列表?_Python_List_Mapping_Tuples_Immutability - Fatal编程技术网

Python 具有计算值和非计算值的元组列表?

Python 具有计算值和非计算值的元组列表?,python,list,mapping,tuples,immutability,Python,List,Mapping,Tuples,Immutability,我的元组s的前两个元素是计算的(见下文),但我希望它们是3-元组s,而不是2-元组s,最后一个元素设置为1 from itertools import permutations if __name__ == '__main__': alphabet='abcdefghijklmnopqrstuvwxyz' print list(permutations(alphabet,2)) : 试图有效地做到这一点: [('a', 'b', 1), ('a', 'c', 1), ('a'

我的
元组
s的前两个元素是计算的(见下文),但我希望它们是3-
元组
s,而不是2-
元组
s,最后一个元素设置为
1

from itertools import permutations

if __name__ == '__main__':
    alphabet='abcdefghijklmnopqrstuvwxyz'
    print list(permutations(alphabet,2))
:

试图有效地做到这一点:

[('a', 'b', 1), ('a', 'c', 1), ('a', 'd', 1), ('a', 'e', 1), ('a', 'f', 1), ('a', 'g', 1), ('a', 'h', 1), ('a', 'i', 1), ('a', 'j', 1), ('a', 'k', 1), ('a', 'l', 1), ('a', 'm', 1), ('a', 'n', 1), ('a', 'o', 1), ('a', 'p', 1), ('a', 'q', 1), ('a', 'r', 1), ('a', 's', 1), ('a', 't', 1), ('a', 'u', 1), ('a', 'v', 1), ('a', 'w', 1), ('a', 'x', 1), ('a', 'y', 1), ('a', 'z', 1), ('b', 'a', 1), ('b', 'c', 1), ('b', 'd', 1), ('b', 'e', 1), ('b', 'f', 1), ('b', 'g', 1), ('b', 'h', 1), ('b', 'i', 1), ('b', 'j', 1), ('b', 'k', 1), ('b', 'l', 1), ('b', 'm', 1), ('b', 'n', 1), ('b', 'o', 1), ('b', 'p', 1), ('b', 'q', 1), ('b', 'r', 1), ('b', 's', 1), ('b', 't', 1), ('b', 'u', 1), ('b', 'v', 1), ('b', 'w', 1), ('b', 'x', 1), ('b', 'y', 1), ('b', 'z', 1), ('c', 'a', 1), ('c', 'b', 1), ('c', 'd', 1), ('c', 'e', 1), ('c', 'f', 1), ('c', 'g', 1), ('c', 'h', 1), ('c', 'i', 1), ('c', 'j', 1), ('c', 'k', 1), ('c', 'l', 1), ('c', 'm', 1), ('c', 'n', 1), ('c', 'o', 1), ('c', 'p', 1), ('c', 'q', 1), ('c', 'r', 1), ('c', 's', 1), ('c', 't', 1), ('c', 'u', 1), ('c', 'v', 1), ('c', 'w', 1), ('c', 'x', 1), ('c', 'y', 1), ('c', 'z', 1), ('d', 'a', 1), ('d', 'b', 1), ('d', 'c', 1), ('d', 'e', 1), ('d', 'f', 1), ('d', 'g', 1), ('d', 'h', 1), ('d', 'i', 1), ('d', 'j', 1), ('d', 'k', 1), ('d', 'l', 1), ('d', 'm', 1), ('d', 'n', 1), ('d', 'o', 1), ('d', 'p', 1), ('d', 'q', 1), ('d', 'r', 1), ('d', 's', 1), ('d', 't', 1), ('d', 'u', 1), ('d', 'v', 1), ('d', 'w', 1), ('d', 'x', 1), ('d', 'y', 1), ('d', 'z', 1), ('e', 'a', 1), ('e', 'b', 1), ('e', 'c', 1), ('e', 'd', 1), ('e', 'f', 1), ('e', 'g', 1), ('e', 'h', 1), ('e', 'i', 1), ('e', 'j', 1), ('e', 'k', 1), ('e', 'l', 1), ('e', 'm', 1), ('e', 'n', 1), ('e', 'o', 1), ('e', 'p', 1), ('e', 'q', 1), ('e', 'r', 1), ('e', 's', 1), ('e', 't', 1), ('e', 'u', 1), ('e', 'v', 1), ('e', 'w', 1), ('e', 'x', 1), ('e', 'y', 1), ('e', 'z', 1), ('f', 'a', 1), ('f', 'b', 1), ('f', 'c', 1), ('f', 'd', 1), ('f', 'e', 1), ('f', 'g', 1), ('f', 'h', 1), ('f', 'i', 1), ('f', 'j', 1), ('f', 'k', 1), ('f', 'l', 1), ('f', 'm', 1), ('f', 'n', 1), ('f', 'o', 1), ('f', 'p', 1), ('f', 'q', 1), ('f', 'r', 1), ('f', 's', 1), ('f', 't', 1), ('f', 'u', 1), ('f', 'v', 1), ('f', 'w', 1), ('f', 'x', 1), ('f', 'y', 1), ('f', 'z', 1), ('g', 'a', 1), ('g', 'b', 1), ('g', 'c', 1), ('g', 'd', 1), ('g', 'e', 1), ('g', 'f', 1), ('g', 'h', 1), ('g', 'i', 1), ('g', 'j', 1), ('g', 'k', 1), ('g', 'l', 1), ('g', 'm', 1), ('g', 'n', 1), ('g', 'o', 1), ('g', 'p', 1), ('g', 'q', 1), ('g', 'r', 1), ('g', 's', 1), ('g', 't', 1), ('g', 'u', 1), ('g', 'v', 1), ('g', 'w', 1), ('g', 'x', 1), ('g', 'y', 1), ('g', 'z', 1), ('h', 'a', 1), ('h', 'b', 1), ('h', 'c', 1), ('h', 'd', 1), ('h', 'e', 1), ('h', 'f', 1), ('h', 'g', 1), ('h', 'i', 1), ('h', 'j', 1), ('h', 'k', 1), ('h', 'l', 1), ('h', 'm', 1), ('h', 'n', 1), ('h', 'o', 1), ('h', 'p', 1), ('h', 'q', 1), ('h', 'r', 1), ('h', 's', 1), ('h', 't', 1), ('h', 'u', 1), ('h', 'v', 1), ('h', 'w', 1), ('h', 'x', 1), ('h', 'y', 1), ('h', 'z', 1), ('i', 'a', 1), ('i', 'b', 1), ('i', 'c', 1), ('i', 'd', 1), ('i', 'e', 1), ('i', 'f', 1), ('i', 'g', 1), ('i', 'h', 1), ('i', 'j', 1), ('i', 'k', 1), ('i', 'l', 1), ('i', 'm', 1), ('i', 'n', 1), ('i', 'o', 1), ('i', 'p', 1), ('i', 'q', 1), ('i', 'r', 1), ('i', 's', 1), ('i', 't', 1), ('i', 'u', 1), ('i', 'v', 1), ('i', 'w', 1), ('i', 'x', 1), ('i', 'y', 1), ('i', 'z', 1), ('j', 'a', 1), ('j', 'b', 1), ('j', 'c', 1), ('j', 'd', 1), ('j', 'e', 1), ('j', 'f', 1), ('j', 'g', 1), ('j', 'h', 1), ('j', 'i', 1), ('j', 'k', 1), ('j', 'l', 1), ('j', 'm', 1), ('j', 'n', 1), ('j', 'o', 1), ('j', 'p', 1), ('j', 'q', 1), ('j', 'r', 1), ('j', 's', 1), ('j', 't', 1), ('j', 'u', 1), ('j', 'v', 1), ('j', 'w', 1), ('j', 'x', 1), ('j', 'y', 1), ('j', 'z', 1), ('k', 'a', 1), ('k', 'b', 1), ('k', 'c', 1), ('k', 'd', 1), ('k', 'e', 1), ('k', 'f', 1), ('k', 'g', 1), ('k', 'h', 1), ('k', 'i', 1), ('k', 'j', 1), ('k', 'l', 1), ('k', 'm', 1), ('k', 'n', 1), ('k', 'o', 1), ('k', 'p', 1), ('k', 'q', 1), ('k', 'r', 1), ('k', 's', 1), ('k', 't', 1), ('k', 'u', 1), ('k', 'v', 1), ('k', 'w', 1), ('k', 'x', 1), ('k', 'y', 1), ('k', 'z', 1), ('l', 'a', 1), ('l', 'b', 1), ('l', 'c', 1), ('l', 'd', 1), ('l', 'e', 1), ('l', 'f', 1), ('l', 'g', 1), ('l', 'h', 1), ('l', 'i', 1), ('l', 'j', 1), ('l', 'k', 1), ('l', 'm', 1), ('l', 'n', 1), ('l', 'o', 1), ('l', 'p', 1), ('l', 'q', 1), ('l', 'r', 1), ('l', 's', 1), ('l', 't', 1), ('l', 'u', 1), ('l', 'v', 1), ('l', 'w', 1), ('l', 'x', 1), ('l', 'y', 1), ('l', 'z', 1), ('m', 'a', 1), ('m', 'b', 1), ('m', 'c', 1), ('m', 'd', 1), ('m', 'e', 1), ('m', 'f', 1), ('m', 'g', 1), ('m', 'h', 1), ('m', 'i', 1), ('m', 'j', 1), ('m', 'k', 1), ('m', 'l', 1), ('m', 'n', 1), ('m', 'o', 1), ('m', 'p', 1), ('m', 'q', 1), ('m', 'r', 1), ('m', 's', 1), ('m', 't', 1), ('m', 'u', 1), ('m', 'v', 1), ('m', 'w', 1), ('m', 'x', 1), ('m', 'y', 1), ('m', 'z', 1), ('n', 'a', 1), ('n', 'b', 1), ('n', 'c', 1), ('n', 'd', 1), ('n', 'e', 1), ('n', 'f', 1), ('n', 'g', 1), ('n', 'h', 1), ('n', 'i', 1), ('n', 'j', 1), ('n', 'k', 1), ('n', 'l', 1), ('n', 'm', 1), ('n', 'o', 1), ('n', 'p', 1), ('n', 'q', 1), ('n', 'r', 1), ('n', 's', 1), ('n', 't', 1), ('n', 'u', 1), ('n', 'v', 1), ('n', 'w', 1), ('n', 'x', 1), ('n', 'y', 1), ('n', 'z', 1), ('o', 'a', 1), ('o', 'b', 1), ('o', 'c', 1), ('o', 'd', 1), ('o', 'e', 1), ('o', 'f', 1), ('o', 'g', 1), ('o', 'h', 1), ('o', 'i', 1), ('o', 'j', 1), ('o', 'k', 1), ('o', 'l', 1), ('o', 'm', 1), ('o', 'n', 1), ('o', 'p', 1), ('o', 'q', 1), ('o', 'r', 1), ('o', 's', 1), ('o', 't', 1), ('o', 'u', 1), ('o', 'v', 1), ('o', 'w', 1), ('o', 'x', 1), ('o', 'y', 1), ('o', 'z', 1), ('p', 'a', 1), ('p', 'b', 1), ('p', 'c', 1), ('p', 'd', 1), ('p', 'e', 1), ('p', 'f', 1), ('p', 'g', 1), ('p', 'h', 1), ('p', 'i', 1), ('p', 'j', 1), ('p', 'k', 1), ('p', 'l', 1), ('p', 'm', 1), ('p', 'n', 1), ('p', 'o', 1), ('p', 'q', 1), ('p', 'r', 1), ('p', 's', 1), ('p', 't', 1), ('p', 'u', 1), ('p', 'v', 1), ('p', 'w', 1), ('p', 'x', 1), ('p', 'y', 1), ('p', 'z', 1), ('q', 'a', 1), ('q', 'b', 1), ('q', 'c', 1), ('q', 'd', 1), ('q', 'e', 1), ('q', 'f', 1), ('q', 'g', 1), ('q', 'h', 1), ('q', 'i', 1), ('q', 'j', 1), ('q', 'k', 1), ('q', 'l', 1), ('q', 'm', 1), ('q', 'n', 1), ('q', 'o', 1), ('q', 'p', 1), ('q', 'r', 1), ('q', 's', 1), ('q', 't', 1), ('q', 'u', 1), ('q', 'v', 1), ('q', 'w', 1), ('q', 'x', 1), ('q', 'y', 1), ('q', 'z', 1), ('r', 'a', 1), ('r', 'b', 1), ('r', 'c', 1), ('r', 'd', 1), ('r', 'e', 1), ('r', 'f', 1), ('r', 'g', 1), ('r', 'h', 1), ('r', 'i', 1), ('r', 'j', 1), ('r', 'k', 1), ('r', 'l', 1), ('r', 'm', 1), ('r', 'n', 1), ('r', 'o', 1), ('r', 'p', 1), ('r', 'q', 1), ('r', 's', 1), ('r', 't', 1), ('r', 'u', 1), ('r', 'v', 1), ('r', 'w', 1), ('r', 'x', 1), ('r', 'y', 1), ('r', 'z', 1), ('s', 'a', 1), ('s', 'b', 1), ('s', 'c', 1), ('s', 'd', 1), ('s', 'e', 1), ('s', 'f', 1), ('s', 'g', 1), ('s', 'h', 1), ('s', 'i', 1), ('s', 'j', 1), ('s', 'k', 1), ('s', 'l', 1), ('s', 'm', 1), ('s', 'n', 1), ('s', 'o', 1), ('s', 'p', 1), ('s', 'q', 1), ('s', 'r', 1), ('s', 't', 1), ('s', 'u', 1), ('s', 'v', 1), ('s', 'w', 1), ('s', 'x', 1), ('s', 'y', 1), ('s', 'z', 1), ('t', 'a', 1), ('t', 'b', 1), ('t', 'c', 1), ('t', 'd', 1), ('t', 'e', 1), ('t', 'f', 1), ('t', 'g', 1), ('t', 'h', 1), ('t', 'i', 1), ('t', 'j', 1), ('t', 'k', 1), ('t', 'l', 1), ('t', 'm', 1), ('t', 'n', 1), ('t', 'o', 1), ('t', 'p', 1), ('t', 'q', 1), ('t', 'r', 1), ('t', 's', 1), ('t', 'u', 1), ('t', 'v', 1), ('t', 'w', 1), ('t', 'x', 1), ('t', 'y', 1), ('t', 'z', 1), ('u', 'a', 1), ('u', 'b', 1), ('u', 'c', 1), ('u', 'd', 1), ('u', 'e', 1), ('u', 'f', 1), ('u', 'g', 1), ('u', 'h', 1), ('u', 'i', 1), ('u', 'j', 1), ('u', 'k', 1), ('u', 'l', 1), ('u', 'm', 1), ('u', 'n', 1), ('u', 'o', 1), ('u', 'p', 1), ('u', 'q', 1), ('u', 'r', 1), ('u', 's', 1), ('u', 't', 1), ('u', 'v', 1), ('u', 'w', 1), ('u', 'x', 1), ('u', 'y', 1), ('u', 'z', 1), ('v', 'a', 1), ('v', 'b', 1), ('v', 'c', 1), ('v', 'd', 1), ('v', 'e', 1), ('v', 'f', 1), ('v', 'g', 1), ('v', 'h', 1), ('v', 'i', 1), ('v', 'j', 1), ('v', 'k', 1), ('v', 'l', 1), ('v', 'm', 1), ('v', 'n', 1), ('v', 'o', 1), ('v', 'p', 1), ('v', 'q', 1), ('v', 'r', 1), ('v', 's', 1), ('v', 't', 1), ('v', 'u', 1), ('v', 'w', 1), ('v', 'x', 1), ('v', 'y', 1), ('v', 'z', 1), ('w', 'a', 1), ('w', 'b', 1), ('w', 'c', 1), ('w', 'd', 1), ('w', 'e', 1), ('w', 'f', 1), ('w', 'g', 1), ('w', 'h', 1), ('w', 'i', 1), ('w', 'j', 1), ('w', 'k', 1), ('w', 'l', 1), ('w', 'm', 1), ('w', 'n', 1), ('w', 'o', 1), ('w', 'p', 1), ('w', 'q', 1), ('w', 'r', 1), ('w', 's', 1), ('w', 't', 1), ('w', 'u', 1), ('w', 'v', 1), ('w', 'x', 1), ('w', 'y', 1), ('w', 'z', 1), ('x', 'a', 1), ('x', 'b', 1), ('x', 'c', 1), ('x', 'd', 1), ('x', 'e', 1), ('x', 'f', 1), ('x', 'g', 1), ('x', 'h', 1), ('x', 'i', 1), ('x', 'j', 1), ('x', 'k', 1), ('x', 'l', 1), ('x', 'm', 1), ('x', 'n', 1), ('x', 'o', 1), ('x', 'p', 1), ('x', 'q', 1), ('x', 'r', 1), ('x', 's', 1), ('x', 't', 1), ('x', 'u', 1), ('x', 'v', 1), ('x', 'w', 1), ('x', 'y', 1), ('x', 'z', 1), ('y', 'a', 1), ('y', 'b', 1), ('y', 'c', 1), ('y', 'd', 1), ('y', 'e', 1), ('y', 'f', 1), ('y', 'g', 1), ('y', 'h', 1), ('y', 'i', 1), ('y', 'j', 1), ('y', 'k', 1), ('y', 'l', 1), ('y', 'm', 1), ('y', 'n', 1), ('y', 'o', 1), ('y', 'p', 1), ('y', 'q', 1), ('y', 'r', 1), ('y', 's', 1), ('y', 't', 1), ('y', 'u', 1), ('y', 'v', 1), ('y', 'w', 1), ('y', 'x', 1), ('y', 'z', 1), ('z', 'a', 1), ('z', 'b', 1), ('z', 'c', 1), ('z', 'd', 1), ('z', 'e', 1), ('z', 'f', 1), ('z', 'g', 1), ('z', 'h', 1), ('z', 'i', 1), ('z', 'j', 1), ('z', 'k', 1), ('z', 'l', 1), ('z', 'm', 1), ('z', 'n', 1), ('z', 'o', 1), ('z', 'p', 1), ('z', 'q', 1), ('z', 'r', 1), ('z', 's', 1), ('z', 't', 1), ('z', 'u', 1), ('z', 'v', 1), ('z', 'w', 1), ('z', 'x', 1), ('z', 'y', 1)]

(我很高兴它是嵌套的
列表
而不是嵌套的3-
元组

您可以将最后一行更改为:

print [x + (1,) for x in a]

您可以将最后一行更改为:

print [x + (1,) for x in a]

在打印一份之前,插入

 a = [(x, y, 1) for x, y in a]
或者,替换

list(permutations([alphabet[i],alphabet[i+1]]))

编辑:根据您的新需求,最简单的解决方案是

[(x, y, 1) for x, y in permutations(alphabet, 2)]
对于一般的长度为k的置换,它变成

[p + (1,) for p in permutations(alphabet, k)]

在打印一份之前,插入

 a = [(x, y, 1) for x, y in a]
或者,替换

list(permutations([alphabet[i],alphabet[i+1]]))

编辑:根据您的新需求,最简单的解决方案是

[(x, y, 1) for x, y in permutations(alphabet, 2)]
对于一般的长度为k的置换,它变成

[p + (1,) for p in permutations(alphabet, k)]

您可以在每个生成的排列上循环并附加静态1:

from itertools import permutations

if __name__ == '__main__':
    alphabet='abcdefghijklmnopqrstuvwxyz'
    a=[]
    for i in xrange(len(alphabet)-1):
        a+=[x + (1,) for x in permutations([alphabet[i],alphabet[i+1]])]
    print a
或者,为了使这一点更加明确:

from itertools import permutations

if __name__ == '__main__':
    alphabet='abcdefghijklmnopqrstuvwxyz'
    a=[]
    for i in xrange(len(alphabet)-1):
        a+=[(l1, l2, 1) for (l1, l2) in permutations([alphabet[i],alphabet[i+1]])]
    print a

这两种变体都会产生所需的输出,并且效率接近您的
列表(生成器)
原件。

您可以循环每个生成的排列并附加静态1:

from itertools import permutations

if __name__ == '__main__':
    alphabet='abcdefghijklmnopqrstuvwxyz'
    a=[]
    for i in xrange(len(alphabet)-1):
        a+=[x + (1,) for x in permutations([alphabet[i],alphabet[i+1]])]
    print a
或者,为了使这一点更加明确:

from itertools import permutations

if __name__ == '__main__':
    alphabet='abcdefghijklmnopqrstuvwxyz'
    a=[]
    for i in xrange(len(alphabet)-1):
        a+=[(l1, l2, 1) for (l1, l2) in permutations([alphabet[i],alphabet[i+1]])]
    print a

这两种变体都能产生所需的输出,并且效率接近您的
列表(生成器)
原始版本。

如果有人仍然感兴趣,我的当前解决方案:

[x + (1,) for x in list(permutations(alphabet,2))+[(alpha, alpha) for alpha in alphabet]]

如果有更有效的方法,我仍感兴趣…

我当前的解决方案,以防有人仍感兴趣:

[x + (1,) for x in list(permutations(alphabet,2))+[(alpha, alpha) for alpha in alphabet]]

如果有更有效的方法,我还是会感兴趣的,不过…

并不能真正解决问题的实质,是不是,只是修改了打印的声明..谢谢,非常有用。但不确定是否有更有效的解决方案……并不能真正解决问题的实质,是吗,只是修改了打印的声明……谢谢,非常有用。但不确定是否有更有效的解决方案……2个字母的排列太过分了!等等,我刚意识到我没有得到我所期望的。如何获取它们?请注意,创建一个空列表并在循环中附加项目是一个非常糟糕的迹象。首先,您使用的是list concat,其中
list.append()
会更好,这是一个很好的地方。)@user143803您可能想使用而不是您自己的字符串。@user143803,len(list(排列(字母表,2))=>6502个字母的排列太过分了!等等,我刚意识到我没有得到我所期望的。如何获取它们?请注意,创建一个空列表并在循环中附加项目是一个非常糟糕的迹象。首先,您使用的是list concat,其中
list.append()
会更好,这是一个很好的地方。)@user143803您可能想使用而不是您自己的字符串。@user143803,len(list(排列(字母表,2))==>650hanks。但我在等待一个没有后期处理的解决方案:)我已经编辑了我的问题,当我看到您在示例中没有使用排列时,我意识到有些地方出了问题。。。你能看看你能不能回答这个问题吗?谢谢。但我在等待一个没有后期处理的解决方案:)我已经编辑了我的问题,当我看到您在示例中没有使用排列时,我意识到有些地方出了问题。。。你能看看你能否回答这个问题吗?