加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何读取文本文件并以相反的顺序输出单词?Python

发布时间:2020-12-20 11:43:09 所属栏目:Python 来源:网络整理
导读:所以我正在编写一个代码来读取文本并在屏幕上以相反的顺序输出单词,这意味着原始文本是 hello worldhow are you 至: you are howworld hello 我让它部分工作,问题是它在一个列中输出它,但我希望它在行中. 代码是 for a in reversed(list(open("text.txt")))
所以我正在编写一个代码来读取文本并在屏幕上以相反的顺序输出单词,这意味着原始文本是

hello world
how are you

至:

you are how
world hello

我让它部分工作,问题是它在一个列中输出它,但我希望它在行中.

代码是

for a in reversed(list(open("text.txt"))):
    for i in a:
        a = i.split()
        b =  a[::-1]
        final_string = ''
        for i in b:
            final_string += i + ' '
        print(final_string)

解决方法

你有一个循环太多:

for a in reversed(list(open("text.txt"))):
    for i in a:

第一个循环以相反的顺序生成文件中的行,因此a绑定到每一行.然后第二个循环遍历该行中的每个单独字符.然后,您继续“反转”该字符(或当该字符是空格或换行符时为空列表).

你已经在文件中使用了反转,你也可以用它作为行;将它与str.join()结合:

for line in reversed(list(open("text.txt"))):
    words = line.split()
    reversed_words = ' '.join(reversed(words))
    print(reversed_words)

或者更简洁地说:

print(*(' '.join(l.split()[::-1]) for l in reversed(list(open('text.txt')))),sep='n')

演示:

>>> with open('text.txt','w') as fo:
...     fo.write('''
... hello world
... how are you
... ''')
... 
24
>>> for line in reversed(list(open("text.txt"))):
...     words = line.split()
...     reversed_words = ' '.join(reversed(words))
...     print(reversed_words)
... 
you are how
world hello
>>> print(*(' '.join(l.split()[::-1]) for l in reversed(list(open('text.txt')))),sep='n')
you are how
world hello

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读