列表推导式
列表推导式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
创建一个list
l = list(range(1, 7))
------------------------
[1,2,3,4,5,6]
但是如果要生成[1 * 1,2 * 2,3* 3,4* 4,5 * 5,6 * 6]时, 有两种方式
- 循环
L = []
for x in range(1, 7):
L.append(x * x)
print(L)
--------------------------
[1, 4, 9, 16, 25, 36]
循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
- 列表推导式
l = [ x * x for x in range(1, 7)]
dict
- 具有一系列成对对象。一个叫做key, 一个叫做value。
- 无顺序, key不可重复
- 通过其中一个key可以唯一确定另外一个value, 反之未必。
- 可以添加和删除
- 其中的元素(包括key和value)不需要是同类型。
- key必须是不可变对象
dicPerson = ['name': 'coco', 'gender': 'M', 'love':'all']
del ab['name']
# 通过 in 判断 key 是否存在
‘address’ in dicPerson # false
# get(), 如果key不存在,可以返回None
dicPerson.get('address')
# 删除 key
dicPerson.pop('gender')
** 和list比较,dict有以下几个特点:**
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
set
- 具有一组对象, 无顺序, 不可重复
- 可以添加和删除。
- 其中的元素不需要是同类型, 但必须是不可变对象
- 重复元素自动过滤
s = set([1, 2, 3])
s
-------------------
{1, 2, 3}
s = set([1, 1, 2, 2, 3, 3])
s
--------------------------------
{1, 2, 3}
- set 的add和 remove
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.remove(4)
>>> s
{1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
string的一些其他方法
字符串是以Unicode编码的,也就是说,Python的字符串支持多语言
- startswith
- endswith
- in
- find
- replace
- upper
- lower
- join
- split