【问题标题】:How would I print these lists?我将如何打印这些列表?
【发布时间】:2014-03-21 08:14:14
【问题描述】:
number = [1, 2, 3, 4]
letter = ['a', 'b', 'c', 'd']

for s in number:         
    print s

for d in letter:
    print d

我希望循环打印出来

1
a
2
b

等等,这个循环是我得到的最接近的循环

【问题讨论】:

  • 如果数组大小不同怎么办?
  • 谢谢大家,从来不知道zip功能

标签: python arrays variables loops


【解决方案1】:

使用zip():

>>> for n, l in zip(number, letter):
...     print n
...     print l
...     
... 
1
a
2
b
3
c
4
d

zip() 将从numberletter 列表中创建一个元组列表。每个元组都是两个列表中i 位置处的元素,(number[i], letter[i])

压缩列表如下所示:

>>> zip(number, letter)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

【讨论】:

    【解决方案2】:

    如果您只想为这些字母打印连续的数字,您可以使用:

    for i, ch in enumerate(letter, start=1):
        print i
        print ch
    

    【讨论】:

    • 如果数字与enumerate()给出的index不匹配怎么办?
    • @msvalkon 很简单:那么应该选择其他答案之一。
    【解决方案3】:

    这个怎么样:

    print "\n".join(str(j) for i in zip(number, letter) for j in i)
    

    zip 将两个列表组合成一个元组列表。然后在每个元组i 的每个元素j 上进行迭代。 join 将所有元素连接成一个字符串,由换行符 "\n" 分隔。

    【讨论】:

      【解决方案4】:

      使用zip

      >>> number = [1, 2, 3, 4]
      >>> letter = ['a', 'b', 'c', 'd']
      >>> for a in zip(number,letter):
      ...     print a[0]
      ...     print a[1]
      

      【讨论】:

      • 为什么只在控制台中?它也可以在程序中定期使用。
      • 就像您选择的那个在控制台中运行一样。因为我很容易在控制台中尝试。如果需要,您可以在程序中使用它。
      • 选择了那个? :-)
      • 是的,对不起:D。但是,是的,基本上是一样的。问题是“使用 zip,使用 zip”! :) 我不应该在 aswer 中指出关于使用控制台的明显内容,这可能会被误解。感谢您指出。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2022-11-22
      • 2022-11-26
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      相关资源
      最近更新 更多