繁体   English   中英

Python3中的字典帮助

[英]Dictionary help in Python3

我正在尝试打印列表的格式化布局。 我已经把主要部分放下了,但是我似乎无法正确地编号。

这是代码:

shopping_list = {"eggs": "$2", "milk": "$3.50", "cereal": "$3"}

my_shopping_list = "".join(**n**+". "+item+" "+shopping_list[item]+"\n" for item in shopping_list)

print(my_shopping_list)

基本上我想以以下格式打印商品和价格:

{数}。 {item} {price} \\ n

因此结果应为:

1. eggs $2
2. milk $3.50
3. cereal $3

如果我在字典中添加更多项目,它应该可以工作

但是我不知道用什么替换n

**n**+". "+item+" "+shopping_list[item]+"\n" for item in shopping_list

我尝试使用列表来做到这一点

shopping_list = [["eggs", "$2"], ["milk", "$3.50"], ["cereal", "$3"]]

my_shopping_list = "".join(str(n+1)+". "+shopping_list[n][0]+" "+shopping_list[n][1]+"\n" for n in range(len(shopping_list)))

print(my_shopping_list)

而且它工作得很好,但是我需要它才能用于字典,所以我是否找到索引列表等字典的方法,或者有更好的方法呢?

提前致谢!

您几乎是正确的。 您可以修改代码以使用dict.items()

my_shopping_list = "".join(str(i+1)+". "+ k + " "+ v +"\n" for i, (k,v) in enumerate(shopping_list.items()))

但是我建议使用str格式,并使用\\n加入

print("\n".join('{}. {} {}'.format(i, k, v) \
      for i, (k,v) in enumerate(shopping_list.items())))

这是一种方法

shopping_list = {"eggs": "$2", "milk": "$3.50", "cereal": "$3"}
my_shopping_list = "\n".join(("{0} {1} {2}".format(i, v[0], v[1]) for i, v in enumerate(shopping_list.items(), 1)))
print(my_shopping_list)

输出:

1 eggs $2
2 milk $3.50
3 cereal $3

使用itertools.count使它可读。

from itertools import count

shopping_list = {"eggs": "$2", "milk": "$3.50", "cereal": "$3"}

c = count(1)
for k, v in shopping_list.items():
    print(f'{next(c)}. {k} {v}')

# 1. eggs $2
# 2. milk $3.50                                               
# 3. cereal $3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM