Python字典是Python编程语言中的一种数据结构,它以键值对的形式存储数据,提供了高效且灵活的查找、添加和删除操作。在Python中,字典由一对花括号{}包围,键和值之间用冒号:分隔,键值对之间用逗号,分隔。例如:
```python
dict1 = {'name':'han','age':18,'class':'first'}
```
这里`dict1`是一个字典,包含三个键值对。`keys()`方法用于获取字典的所有键,`values()`方法用于获取所有值。`get()`方法则可以安全地获取键对应的值,如果键不存在,它默认返回`None`或指定的默认值。
```python
print(dict1.keys()) # 打印所有key值
print(dict1.values()) # 打印所有values值
print("dict1['name']:", dict1['name']) # 打印name对应的value值
print(dict1.get('name')) # 通过字典的get方法得到name对应的value值
```
字典的修改是通过键来实现的,相当于重新赋值。增加新的键值对使用`dict[key] = value`的形式,删除元素使用`del dict[key]`,清空字典则用`dict.clear()`。完全删除字典使用`del dict`。
```python
dict1['age'] = 28 # 修改age的值
dict1['address'] = 'beijing' # 增加新键值对
del dict1['name'] # 删除name键值对
dict1.clear() # 清空字典
del dict1 # 删除整个字典
```
关于字典的注意事项,键必须是唯一的且不可变,通常使用数字、字符串或元组作为键。元组可以作为键,因为它是不可变的。
```python
dict2 = {(1,2):5, "元组": (4,5)} # 使用元组作为键
```
函数是Python中实现特定功能的代码块,可以被多次调用。函数有自定义函数和预定义函数两种类型。使用函数可以降低编程难度,将复杂问题分解,并提高代码复用性。
```python
def print_str(str):
print(str)
print_str("调用一下")
```
在Python中,函数参数按引用传递,这意味着函数内部对参数的修改会影响到函数外部。但需要注意,对于不可变类型如整数、字符串和元组,传递的是值的副本,而对于可变类型如列表和字典,传递的是引用。
```python
def charge_me(mylist):
mylist.append([1,2,3,4])
print("函数内取值:", mylist)
mylist = [10,20,30]
charge_me(mylist)
print("函数外取值:", mylist)
```
函数还可以设置默认参数值,也可以接受不定长参数。不定长参数通过`*args`接收位置参数,`**kwargs`接收关键字参数。
```python
def p_info(arg1, *vartuple):
print("输出:", arg1)
for var in vartuple:
print(var)
p_info(10)
p_info(70, 60, 50, 40, 30)
```
`lambda`函数是Python中的匿名函数,它仅用于简单的表达式,不适用于复杂的逻辑。
```python
sum1 = lambda arg1, arg2: arg1 + arg2
print("相加后的值为:", sum1(10, 20))
```
全局变量在整个程序中可见,而局部变量只在函数内部有效。如果在函数内部改变了全局变量,那么这个改变会在函数外部也生效,但通常避免使用全局变量以减少错误和提高代码可读性。
```python
total = 0
def sum3(a, b):
total = a + b # 这里创建了一个局部变量total
print("函数内(局部变量)的值为:", total)
sum3(1, 2) # 函数内total值为3
print("函数外(全局变量)的值仍为0:", total) # 全局变量total值未变
```
在需要使用全局变量时,可以使用`global`关键字声明。
全局变量和局部变量的正确使用是编写清晰、无误的Python代码的关键。在实际编程中,应尽量减少全局变量的使用,优先考虑局部变量和参数传递,以确保代码的可维护性和可靠性。