gpt4 book ai didi

Python——读取文件后如何给出一个字符串值

转载 作者:太空狗 更新时间:2023-10-29 12:26:32 24 4
gpt4 key购买 nike

我是这个社区和这种计算机语言的新手。最近我在做一些练习,一个问题困扰了我好几天。这是问题:在 python 中读取文件 test.txt(index: "CDEF","ABC","FIJK") ,并将其重新对齐为 "ABC","CDEF","FIJK",并根据字母给每个字符一个值order(eg, "ABC"= 1+2+3=6), 最后打印索引的值(如A+B+C=6,"ABC"第一位代表1,所以"ABC"的值为6,"CDEF"的值为18*2=36(2代表列表第二位)"FIJK"为36*3=108)打印出150(6+36+108)

我现在没有代码。我在考虑是否用字典键来做。但是有什么绝妙的方法可以做到这一点,或者今天的文件不是上面的索引。我应该循环执行吗?

最佳答案

首先,假设您有一个名为 sample.txt 的文件,其中包含以下内容:

CDEF
ABC
FIJK

脚本

这是完成(我认为)您所追求的目标的脚本:

with open('so.txt', 'r') as file:
lines = [x.replace('\n', '') for x in file.readlines()]
print "lines: ", lines
lines.sort()
print "lines sorted: ", lines

sums = [sum([ord(letter.lower()) - 96 for letter in line]) for line in lines]
print "sums: ", sums

products = [x * (sums.index(x) + 1) for x in sums]
print "products: ", products

total = sum(products)
print "total: ", total

输出

以上代码的输出:

lines:  ['CDEF', 'ABC', 'FIJK']
lines sorted: ['ABC', 'CDEF', 'FIJK']
sums: [6, 18, 36]
products: [6, 36, 108]
total: 150

解释

(1) 将so.txt打开为只读文件,并将其存储为变量:file

with open('so.txt', 'r') as file:

(2) 取出file 中的每一行并删除所有换行符并将其变成一个列表。

    lines = [x.replace('\n', '') for x in file.readlines()]

(3) 对列表进行排序。

    lines.sort()

(4) 这个有点棘手,因为它做了一些事情。

    sums = [sum([ord(letter.lower()) - 96 for letter in line]) for line in lines]

所以,让我们把它分成两个部分:

    sums = [<do_something_here with line> for line in lines]

该代码称为 list comprehension .它正在用 lines 列表的每个元素创建一个新列表,并做一些事情。它大致相当于:

    sums = []
for line in lines:
sums.append(<do_something_here with line>)

因此,有了 line 变量(这将是一个字符串),我们也可以将其视为一个列表,并在另一个列表理解中对其进行迭代:

    [ord(letter.lower()) - 96 for letter in line]

对于 line 字符串中的每个 letter,将其转换为小写,使其成为 ASCII 序号,并减去 96 得到它以 a == 1 开头。您可以看到 all ASCII numbers here 的列表.

最后,有了一个现在将字符串转换为数字的列表,我们将 sum() 应用于该列表。

我们现在有:

[6, 18, 36]

(5) 我们采用该总和 列表并提供另一个 列表理解。这一次,目标是获取每个数字,并将其乘以它的 index。您可以通过调用 list.index(element) 获取元素的索引。如下:

    products = [x * (sums.index(x) + 1) for x in sums]

(6) 最后,我们所要做的就是再次使用 sum() 方法对最后一个列表求和。

    total = sum(products)

我希望我能回答您提出的问题。

关于Python——读取文件后如何给出一个字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com