
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题:如何使用Python的列表推导式生成一个由(key, value)对组成的字典? 解答:
[expression for item in iterable]
其中,expression 表示要执行的表达式,item 表示迭代器中的每个元素,iterable 表示循环进行迭代的元素序列,例如列表、元组、字符串等。 例如,我们希望生成一个由1到10的整数构成的列表,则可以使用下面的列表推导式:
[number for number in range(1, 11)]
输出结果为:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
key:value 对写在表达式的前半部分。 例如,我们有如下一个由列表:fruits = ['apple', 'banana', 'orange', 'lemon']
我们想将它转换成一个字典,其中做为 key 的元素是列表中的字符串,做为 value 的元素是字符串长度。我们可以使用下面的列表推导式来实现:
{fruit:len(fruit) for fruit in fruits}
其中,{} 表示生成一个字典,fruit:len(fruit) 表示 key-value 对,fruit 表示迭代器中的每个元素,fruits 是待迭代的列表。 输出结果为:
{'apple': 5, 'banana': 6, 'orange': 6, 'lemon': 5}
也可以使用嵌套的列表来生成一个字典,例如:
items = [('apple', 2.5), ('banana', 3.0), ('orange', 4.5)]
{item[0]:item[1] for item in items}
输出结果为:
{'apple': 2.5, 'banana': 3.0, 'orange': 4.5}
# 例1:将一个字典的键和值互换
d = {1: 'apple', 2: 'banana', 3: 'orange'}
{value:key for key, value in d.items()}
# 例2:生成数字的平方
[num**2 for num in range(1, 6)]
# 例3:使用元组生成含有 key-value 对的字典
items = [('apple', 2.5), ('banana', 3.0), ('orange', 4.5)]
{item[0]:item[1] for item in items}
# 例4:对列表中的字符串统计长度生成字典
fruits = ['apple', 'banana', 'orange', 'lemon']
{fruit:len(fruit) for fruit in fruits}