我有一个包含9个项目的字典,它叫做用户。现在可以做到这一点,这是完全有用的:
for x in range (0, 9):
print users[x]
在一行代码中使用类似
的代码print users[x for x in range (0, 9)]
这会产生语法错误。那么可以这样做,或者我需要使用lambda函数或其他东西吗?感谢
答案 0 :(得分:2)
在我谈到这一点之前的两点说明:
首先,
[x for x in whatever]
完全是多余的,
whatever
会产生相同的指数。
在你的情况下,它将等同于
print users[range(0,9)]
与
相同print users[range(9)]
不起作用,因为users
不支持使用list
进行索引。
其次,
如果你的键是连续的整数并从0开始,你不应该使用字典。这是一个列表。
你可以做的只是使用字典的不同方法,例如
print users.items()
或
print users.keys()
甚至
print "\n".join("key %s has value %s" % item for item in users.items())
如果您希望您的代码看起来更像是用函数式语言编写的。哪个Python不是。它有功能方面。在功能性问题中使用它并不总是最容易阅读。我会坚持你的原始代码。
答案 1 :(得分:0)
您需要将for k in users:
print (k)
置于循环内,就像这样
dict
或者如果您想要更灵活,可以使用keys
的方法,例如values
或for k in users:
print (k : x[k])
,您可以这样做以获得更多的可读输出:
{{1}}
答案 2 :(得分:0)
好吧,你可以写:
print [users[k] for k in users.keys()]