【发布时间】:2020-05-09 11:41:39
【问题描述】:
现在已经查看 Stackoverflow 和文档 2 天了,我是初学者,我就是无法进步。我正在使用 Python 3.8。
我有一个字典列表:
books = [{'Type': 'Book', 'Date': '2011', 'Publication Year': '2011', 'Place Published': 'New York', 'Publisher': 'Simon & Schuster', 'Author': 'Walter Isaacson', 'ISBN': '978-1-4516-4853-9', 'Title': 'Test Steve Jobs'}, {'Type': 'Book', 'Date': '2001', 'Publication Year': '2001', 'Place Published': 'Oxford', 'Publisher': 'Oxford University press', 'Author': 'Peter Hall', 'ISBN': '978-0-19-924775-2', 'Title': 'Test Varieties of capitalism: the institutional foundations of comparative advantage'}]
print(books)
我想把键“Type”变成小写的“type”。 但是通过以下列表理解,它以某种方式使键成为值,反之亦然。
lower_list = [ { v:k.lower() for k,v in d.items() } for d in books ]
print(lower_list)
我最终得到[{'Book': 'type',....,而它应该是[{'type': 'Book',....
我仍然在努力理解列表理解语法,因此非常感谢 1. 有人用简单的英语解释我的列表理解的作用以及 2. 如何更改它以实现我正在寻找的内容。 :)
谢谢!
【问题讨论】:
-
lower_list = [ { k.lower():v for k,v in d.items() } for d in books ]?您正在反转键和值 -
我知道有人会在几秒钟内给出最简单的解决方案!太感谢了!你能解释一下“:”在这里的作用吗?
-
这是 dict 中键和值之间的分隔符,您可以看到这样的理解:
[{ myKey:myValue for myKey,myValue in d.items() } for d in books]in myKey,myValue in d.items() 你'正在解压缩从这样的字典生成的元组:(键,值),不知道现在是否更清楚了:p -
这是有道理的。感谢您花时间解释。 :)
-
一个后续问题:我现在正在尝试对每个键进行小写,但 ISBN 除外。但显然它不是有效的语法: ` `
[{v:k.lower() for k,v if k not "ISBN" in d.items()} for d in books]` `
标签: python-3.x list list-comprehension