kllly 发表于 2020-6-7 21:03:13

python行排序问题

文本文件 input.txt 中数据存储形式是

2 乘以 8

3 乘以 8

5 乘以 5

请编写程序从该文件中读取数据,计算每行乘积,并按结果降序排名,输出到文件 output.txt 中,如果结果一样,则排名顺序与原始顺序一致。

output.txt 文件中的数据格式为:

5 乘以 5 25

3 乘以 8 24

2 乘以 8 16



求助各位大佬帮忙解答{:10_266:} 感谢

Twilight6 发表于 2020-6-7 21:22:16

如果编码报错,把两个open的 encoding = 'utf-8'去掉

with open('input.txt',encoding='utf-8') as f:
    temp = []
    count = 0
    for i in f:
      if i != '\n':
            i = i.split('\n')
            temp.append(])
            temp += *temp]
            count += 1
    temp = sorted(temp,key=lambda x:x)
with open('output.txt','w',encoding='utf-8') as f:
    for i in temp[::-1]:
      f.write(f'{i} 乘以 {i} {i}\n')

Stubborn 发表于 2020-6-7 21:34:13

def WriteOutPut():

    import re
    with open("input.txt", "r", encoding="utf-8") as f:
      text = re.findall("(\d+).*?(\d+)", f.read())

    with open("output.txt", "w", encoding="utf-8") as f:
      for one,two in text:
            txt = f"{one} 乘以 {two} 等于 {int(one)*int(two)}\n\n"
            f.write(txt)

Stubborn 发表于 2020-6-7 21:35:28

Twilight6 发表于 2020-6-7 21:22
如果编码报错,把两个open的 encoding = 'utf-8'去掉

你怎么这么快,没天理呀{:10_274:}:10_274:}:10_274:}

Twilight6 发表于 2020-6-7 21:36:33

Stubborn 发表于 2020-6-7 21:35
你怎么这么快,没天理呀:10_274:}:10_274:}

{:10_250:} 正则还可以这样用 学到了

Stubborn 发表于 2020-6-7 21:42:44

Twilight6 发表于 2020-6-7 21:36
正则还可以这样用 学到了

{:10_295:}大佬,加个V呀

Twilight6 发表于 2020-6-7 21:43:46

Stubborn 发表于 2020-6-7 21:42
大佬,加个V呀

{:10_245:}被大佬说大佬真恐怖
页: [1]
查看完整版本: python行排序问题