python - 如何垂直显示列表?

标签 python string list python-3.x

我有一个字母列表,希望能够像这样垂直显示它们:

a d
b e
c f

def main():
    letters = ["a", "b", "c", "d","e", "f"]
    for i in letters:
       print(i)

此代码仅像这样显示它们:

a
b
c
d
e

最佳答案

那是因为你是 printing他们在不同的行。尽管您没有向我们提供足够的信息来说明您实际上希望如何打印它们,但我可以推断您希望在第一列上显示前半部分,在第二列上显示后半部分。

好吧,这不是那么容易,你需要提前考虑一下并意识到如果你计算列表的一半并保留它:h=len(letters)//2 你可以用变量 i 遍历列表的前半部分并在同一行打印 letters[i]letters[h+i]正确的?像这样:

def main():
    letters = ["a", "b", "c", "d","e", "f"]
    h = len(letters)//2 # integer division in Python 3
    for i in range(h):
       print(letters[i], letters[h+i])

您可以很容易地将它概括为没有对长度的列表,但这实际上取决于您在这种情况下想要做什么。

也就是说,通过使用 Python,您可以走得更远 :)。看这段代码:

def main():
    letters = ["a", "b", "c", "d","e", "f"]
    for s1,s2 in zip(letters[:len(letters)//2], letters[len(letters)//2:]): #len(letters)/2 will work with every paired length list
       print(s1,s2)

这将在 Python 3 中输出以下内容:

a d
b e
c f

我刚才做的是用 zip 形成元组函数对列表的两半进行分组。

为了完整起见,如果某天您的列表没有一对长度,您可以使用 itertools.zip_longest其工作方式或多或少类似于 zip,但如果两个可迭代对象的大小不同,则会填充默认值。

希望这对您有所帮助!

关于python - 如何垂直显示列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289068/

相关文章:

python - 数据计算 MySQL 与 Python

python - 寻找一种从 Python 代码中分片 MongoDB 集合的方法

python - 图片无法加载时继续处理

string - VBScript 中是否有任何内置函数可以将字符串重复 N 次?

c# - List<T> 的线程安全,只有一个 Writer,没有 Enumerators

python - 使用 SQLAlchemy 和多处理卡在 Python 脚本中

string - Golang将字符串转换为io.Writer?

mysql - 如何将表中的所有空字符串更改为 NULL?

python - 为什么在循环变量使用相同名称时列表会被最后一项覆盖?

python - 将值插入列表中所有可能的位置