我在Mac上工作并且有一个关于python的问题。 我正在使用名为rectangle.txt的.txt文件,在文件中它看起来像这样:
abcde
fghij
klmno
我需要在使用stdin时阅读这些内容。但这就是我需要我的程序:
afk
bgl
chm
din
ejo
到目前为止,我有一个程序可以读取所有行并将它们拆分并打印出来。 CODE EDITED
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
所有人都做与上面相同的事情。再次感谢您提前帮助我。我一直在研究这个问题几个小时,似乎无法解决这个问题。
答案 0 :(得分:0)
值得信赖的zip
功能可以提供帮助:
>>> lines = ["abc", "def", "ghi"]
>>> result = [''.join(x) for x in zip(*lines)]
>>> result
['adg', 'beh', 'cfi']
说明:zip完全符合您的期望 - 将每个给定迭代中的元素聚合到一个新列表中。我们必须单独传递zip的迭代,而不是列表which is what *lines
does。最后我们只将单个字符数组连接在一起,因为我们需要一个字符串数组而不是一个字符数组的数组。
答案 1 :(得分:0)
我假设每行的输入必须是相同的长度。
在这种情况下,有一个输入字符串列表以及这些字符串循环之一的长度。
[“abcde”,“fghij”,“kilmn”]从这里开始,你注意到每个字符串中第一个字符的模式是什么? “a”+“f”+“k”。