【问题标题】:Creating a List of like Indicies [closed]创建类似指数的列表[关闭]
【发布时间】:2017-09-18 16:48:17
【问题描述】:

这里是新的,对 Python 来说有点新。我有一个空白,希望得到一些指导。

我正在尝试编写一个嵌套列表,然后编写一个 for 循环来打印一个逗号分隔的数字列表,使用每个列表中的相似索引来配对数字。我的代码如下(2.7.14):

FirstNumbers = [1, 2, 3]
SecondNumbers = [4, 5, 6]
ThirdNumbers = [7, 8, 9]
NestedNumbers = [FirstNumbers, SecondNumbers, ThirdNumbers]
for i in range(0, 3):
    for each_number in NestedNumbers:
            print each_number[i],
#Output

1 4 7 2 5 8 3 6 9

我当前的问题是试图让数字读取 [1, 4, 7] 等等。如有任何指导,我将不胜感激。

谢谢

【问题讨论】:

  • 看起来像一个家庭作业..!或测验或作业,不是吗?

标签: python python-2.7 for-loop nested


【解决方案1】:

我认为您需要空列表,以便您可以将数字附加到该列表中,即

FirstNumbers = [1, 2, 3]
SecondNumbers = [4, 5, 6]
ThirdNumbers = [7, 8, 9]
NestedNumbers = [FirstNumbers, SecondNumbers, ThirdNumbers]
m = []
for i in range(0, 3):
    k = []
    for each_number in NestedNumbers:
        k.append(each_number[i])
    m.append(k)

输出 m:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

【讨论】:

  • 巨大的帮助,虽然我没有使用您的确切代码,但它为我提供了弄清楚它的基础。谢谢!
【解决方案2】:

您需要在“for i in range(0,3)”之后放置“print”[”,在“for each_number”部分之后放置一个print“]” 这样它将打印: [1 4 7][2 5 8][3 6 9] 现在你需要在 "print each_number[i]" 之前插入一个 print ", " 你最终会得到: [, 1, 4, 7][, 2, 5, 8][, 3, 6, 9] 您不需要在第一次运行时使用 print ", " 因为这是在第一个数字之前打印逗号。

您需要将第二个 for 语句更改为不通过“NestedNumbers”,因为您无法知道它是否是第一个,而是“range(0,len(NestedNumbers))”,以便您可以查看如果是第一次迭代,是否需要加逗号。 将其更改为:

FirstNumbers = [1, 2, 3]
SecondNumbers = [4, 5, 6]
ThirdNumbers = [7, 8, 9]
NestedNumbers = [FirstNumbers, SecondNumbers, ThirdNumbers]
for x in range(0,3): 
    print "["
    for y in range(0,len(NestedNumbers)):
       if y!=0: print ", "
       print NestedNumbers[y][i]
    print "]"

现在它将打印:

[1, 4, 7][2, 5, 8][3, 6, 9]

【讨论】:

    【解决方案3】:

    试试这个

    import itertools
    for n in itertools.chain(*zip(FirstNumbers,SecondNumbers,ThirdNumbers))
        print n,
    

    对zip 的调用将您想要的列表组合为元组列表。然后itertools.chain 将其展平为一个列表。

    如果你真的想要这个输出:

    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    

    只打印调用zip的结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 2016-04-28
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多