gpt4 book ai didi

python - 如何根据特定要求从字典中打印键和值

转载 作者:行者123 更新时间:2023-11-28 21:44:21 25 4
gpt4 key购买 nike

def main():
salesData= readData('icecream.txt')
print(salesData)
#printReport(salesData)


# Reads the tabular data
# @param filename name of the input file
# @return a dictionary whose keys are ice cream flavors and whose values are sales data.

def readData(filename):
# Create an empty dictionary.
salesData={}

infile=open(filename, "r")

# Read each record from the file.
for line in infile:
fields=line.split(":") # what is field datatype
flavor=fields[0]
salesData[flavor]=buildList(fields)
#print("SalesData", salesData)
#print()
#print()
infile.close()
return salesData

# Builds a list of store sales contained in the fields split from a string.
# @param fields a list of strings comprising the record fields
# @return a list of floating-point values

def buildList(fields):
storeSales= []
for i in range (1, len(fields)):
sales=float(fields[i])
storeSales.append(sales)
#print('StoreSales', storeSales)
#print()
return storeSales

# Prints a sales report.
def printReport(salesData):
numStores=0

#print the dictionary first without the totals?
#call print report


main()

当我在当前状态下运行程序时,它会给我以下输出:

{'chocolate': [10225.25, 9025.0, 9505.0], 'strawberry': [9285.15, 8276.1, 8705.0], 'cookie dough': [7901.25, 4267.0, 7056.5], 'rocky road': [6700.1, 5012.45, 6011.0], 'vanilla': [8580.0, 7201.25, 8900.0]}

但是,我需要它看起来像这样:

chocolate    10225.25   9025.0      9505.0      Total: 28755.25
vanilla 8580.0 7201.25 8900.0 Total: 24681.25
rocky road 6700.1 5012.45 6011.0 Total: 17723.55
strawberry 9285.15 8276.1 8705.0 Total: 26266.25
cookie dough 7901.25 4267.0 7056.5 Total: 19224.75
**42691.75 33781.8 40177.5**

干净、有条理、有标签、完美对齐。我不知道如何以干净的方式从字典中提取数据。此外,我还必须添加巧克力等的总数以及第一、第二和第三列。演示很重要。这不仅仅是“我如何输出数据”,而是“我如何以干净的方式输出数据”。我在考虑使用嵌套的 for 循环,或者可能是带有 for 循环的东西。但是 for 循环的去向,或者我如何使用它来干净地打印出字典数据,我希望它看起来像什么,这超出了我的范围。我看过其他问题,但没有什么比来自字典的数据的制表、组织和打印细节更接近这个级别了。我也尝试过经常引用的“for key, val in X.items():”,但这对我没有用。我什至不知道从哪里开始使用该功能及其令人难以置信的困惑。我会把它放在哪里?我该如何命名呢?我会从那里去哪里?更不用说我还有要添加的列和要添加的行。这是一个非常具体的问题。谢谢。

最佳答案

您可以使用 python 的 string formatting创造一个规则的外观。

有一个不错的网站专门处理 python 格式化:https://pyformat.info

表格行的格式类似于:

>>> row = '{flavour}\t{sales[0]}\t{sales[1]}\t{sales[2]}\tTotal: {total}'

然后您可以填写字段:

>>> row.format(flavour='chocolate',
... sales=[10225.25, 9025.0, 9505.0],
... total=sum([10225.25, 9025.0, 9505.0]))
'chocolate 10225.25 9025.0 9505.0 Total: 28755.25'

从字典中提取这些字段:

>>> for flavour, sales in salesData.items():
... print(row.format(flavour=flavour,
... sales=sales,
... total=sum(sales)))
chocolate 10225.25 9025.0 9505.0 Total: 28755.25
vanilla 8580.0 7201.25 8900.0 Total: 24681.25
rocky road 6700.1 5012.45 6011.0 Total: 17723.55
strawberry 9285.15 8276.1 8705.0 Total: 26266.25
cookie dough 7901.25 4267.0 7056.5 Total: 19224.75

关于python - 如何根据特定要求从字典中打印键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812751/

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