python中key用法?
在Python中,"key" 是一个可选参数,用于指定在对可迭代对象进行排序或比较时所使用的自定义函数。这个函数会被应用到可迭代对象的每个元素上,并返回一个用于排序或比较的键。
常见的使用场景是在排序函数(如 `sorted()` 或 `list.sort()`)和查寻找函数(如 `max()` 或 `min()`)中使用 `key` 参数。
下面是一个示例,展示了如何使用 `key` 函数来对列表进行排序:
```python
fruits = ['apple', 'banana', 'cherry', 'durian']
sorted_fruits = sorted(fruits, key=lambda x: len(x)) # 按照字符串长度进行排序
print(sorted_fruits) # 输出: ['apple', 'banana', 'cherry', 'durian']
```
在上面的例子中,我们使用了 `lambda` 函数作为 `key` 参数,该函数返回每个水果字符串的长度,从而实现了按照字符串长度进行排序的效果。
除了字符串长度之外,你还可以使用其他的条件或转换来定义自定义排序方式。这个函数可以是一个普通的函数或一个匿名函数,只要它返回用于排序的键即可。
需要注意的是,当使用 `key` 函数进行排序时,原始可迭代对象并无有更改,而是返回了一个新的排好序的列表(或类似的可迭代对象)。同样地,在查寻找函数中,只是根据 `key` 函数的返回值来确定最大或最小的元素。
在Python字典中,key是用于索引和访问某个特定值的对象。
举例来讲,一个字典可以这样定义:
python
student = {
"name": "John",
"age": 25,
"courses": ["Math", "Computer Science"]
}
这里name、age和courses都是字典的key,它们是唯一的。
我们可以通过key来访问value:
python
print(student["name"])
# John
key的要求和特点:
1. key不可变
Python的字典key必须是不可变对象,这样可以保证key一直指向一个固定的内存地址。
允许的key类型有:字符串、数值和元组。
不允许的key类型有:列表(可变)。
2. key不重复
每个key在字典中只能出现一次。
如果添加的key已经存在,则会更新该key对应的value。
3. hashable
key需要支持hash功能,这样字典才能快速查寻找对应的value。
允许的key类型如字符串、数值、元组皆可hash。
4. 任意类型
key可以是任意python对象,只要它们是不可变的和可hash的。
5. 作为索引使用
我们可以像数组索引一样使用key来访问字典中的value。