zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python学习笔记(字典、print 的两个变量、一些迭代工具(zip函数、enumerate),简单推导(range))

2023-09-27 14:20:17 时间

字典方法

  1. dic.clear():清空字典,没有返回值。
  2. copy:复制字典;
>>> x = {'name':'abc','age':['12','13']}
>>> x
{'name': 'abc', 'age': ['12', '13']}
>>> y = x.copy()
>>> y
{'name': 'abc', 'age': ['12', '13']}
>>> y['name'] = 'cc'
>>> x
{'name': 'abc', 'age': ['12', '13']}
>>> y['age'].remove('12')  # 增加值用append.
>>> y
{'name': 'cc', 'age': ['13']}
>>> x
{'name': 'abc', 'age': ['13']}
# 这是浅拷贝,复制的值是键指向的空间,如果替换副本中的值,原字典不变,如果修改副本中的值(就地修改),原字典会改变。

避免浅拷贝,可以使用深拷贝。

from copy import deepcopy
y = deepcopy(x)
  1. dic = dict.fromkeys(['key1','key2']): 创建字典包含指定的键,值位None。
  2. dic.get('key'):得到指定键的值,没有的话返回None。
  3. dic.items():将字典以 (key, value)的形式输出。
  4. dic.keys():返回所有键。
  5. dic.pop('key'):弹出指定内容。
  6. serdefault:查询指定键相关的值,但是如果没有指定的键就创建一个,如果有指定的键就不管赋值,只输出存在的值。
>>> a = {}
>>> a.setdefault('name','N/A')
'N/A'
>>> a
{'name': 'N/A'}
>>> a['name'] = 'Lee'
>>> a
{'name': 'Lee'}
>>> a.setdefault('name','N/A')
'Lee'
>>> 
  1. dic1.update(dic2):使用一个字典更新另一个字典,如果有相同的键就替换。

print 的两个变量

print(value, sep = '==', end = " "):sep表示用什么分割开,end表示以什么结尾,默认是以换行符结尾

一些迭代工具

并行迭代

同时迭代两个序列,可以使用zip函数,将两个序列缝合起来。

>>> names = ['a', 'b', 'c', 'd']
>>> ages = [12, 43, 54, 32]
>>> zip(names,ages)  # zip函数返回一个可迭代对象,想要查看可以用list将其装换为列表显示。
<zip object at 0x7fcc24982980>

>>> list(zip(names, ages))
[('a', 12), ('b', 43), ('c', 54), ('d', 32)]

>>> for name,age in zip(names,ages):
...     print(name, age)

a 12
b 43
c 54
d 32

enumerate获取迭代索引

>>> strings = ['a', 'b', 'c', 'd']
>>> enumerate(strings)
<enumerate object at 0x7fcc24982b40>

>>> list(enumerate(strings))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

>>> list(enumerate(strings,start = 1))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

简单推导

range[start, end, step]: 创建数字列表

>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [x*x for x in range(1,10,2)]
[1, 9, 25, 49, 81]

>>> [(x,y) for x in range(3) for y in range(0,5,2)]
[(0, 0), (0, 2), (0, 4), (1, 0), (1, 2), (1, 4), (2, 0), (2, 2), (2, 4)]