我正在学习python,现在我在阅读和分析txt文件方面遇到了一些问题。我想在python中打开一个包含许多行的.txt
文件,在每行中我都有一个水果和它的价格。
我想知道如何让python将它们的价格识别为数字(因为当我使用readlines()
时它识别为字符串)所以我可以使用一些简单函数中的数字来计算最低价格我必须出售水果以获取利润。
有关如何做的任何想法?
答案 0 :(得分:1)
如果名称和价格用逗号分隔:
with open('data.txt') as f:
for line in f:
name, price = line.rstrip().split(',')
price = float(price)
print name, price
答案 1 :(得分:1)
假设您的值以空格分隔,您可以使用以下命令将文件读入元组列表:
# generator to read file and return each line as a list of values
pairs = (line.split() for line in open("x.txt"))
# use list comprehension to produce a list of tuples
fruits = [(name, float(price)) for name, price in pairs]
print fruits
# will print [('apples', 1.23), ('pears', 231.23), ('guava', 12.3)]
请注意,float()
用于将第二个值(price
)从str转换为浮点数。
另请参阅:list comprehension和generator expression。
为了便于查找每种水果的价格,您可以将元组列表转换为字典:
price_lookup = dict(fruits)
print price_lookup["apples"]
# will print 1.23
print price_lookup["guava"] * 2
# will print 24.6
请参阅:dict()
。
答案 2 :(得分:0)
当我第一次学习Python时,我遇到了同样的问题,来自Perl。 Perl会“做你的意思”(或者至少是你认为的意思),当你试图像数字一样使用它时,自动将看起来像数字的东西转换成数字。 (我正在概括,但你明白了)。 Python的理念是没有太多的魔法发生,所以你必须明确地进行转换。致电float("12.00")
或int("123")
以转换字符串。