0

我在 Mac 上工作,有一个关于 python 的问题。我正在使用一个名为 rectangle.txt 的 .txt 文件,在文件中它看起来像这样:

abcde
fghij
klmno

我需要在使用标准输入时阅读这些内容。但这就是我需要我的程序:

afk
bgl
chm
din
ejo

到目前为止,我有一个程序可以读取所有行并将它们拆分并打印出来。 代码编辑

So when I changed my code to this:

for line in sys.stdin.readline():
    ls1 = line
    print ls1

我收到了清单:

a
b
c
d
e

所以现在我只需要遍历其他那些,但我无法弄清楚

我从命令行运行这个函数:

python rectangle.py < rectangle.txt

我正在努力学习所有这些,所以我不想给我答案,而是希望有人帮助向我解释这一点,希望我能理解。

此外,除了这个 .txt 文件输入。我的程序也将使用这些输入进行测试:

123
456
789

A
B
C

所有人都在做与上面相同的事情。再次感谢您帮助我。我已经为此工作了几个小时,似乎无法弄清楚。

4

2 回答 2

0

值得信赖的zip功能来帮助:

>>> lines = ["abc", "def", "ghi"]
>>> result = [''.join(x) for x in zip(*lines)]
>>> result
['adg', 'beh', 'cfi']

说明:zip完全符合您的期望 - 将每个给定可迭代的元素聚合到一个新列表中。我们必须单独传递 zip 迭代,而不是作为列表*lines传递。最后,我们只是将单个字符数组连接在一起,因为我们想要一个字符串数组而不是字符数组的数组。

于 2013-02-08T05:15:51.020 回答
0

我假设每行中的输入必须是相同的长度。

在这种情况下,有一个输入字符串列表和这些字符串循环之一的长度。

["abcde", "fghij", "kilmn"] 从这里你注意到每个字符串的第一个字符的模式是什么?“a”+“f”+“k”。

于 2013-02-08T05:31:04.790 回答