列表由一系列按特定顺序排列的元素组成。列表根据索引,按照0, 1, 2, . . .的顺序存储值。在Python中, 用方括号[ ] 来表示列表, 并用逗号来分隔其中的元素。
>>> list() #创建空列表
>>> [ ] #创建空列表
>>> a = [1, 2, 3, 4, 5] # 生成列表
>>> print(a) # 输出列表的内容
>>> len(a) # 获取列表的长度
>>> a[0] # 访问第一个元素的值,索引由0开始
>>> a[4] = 99 # 赋值
>>> a = [1,2,3,4,1,1,-1]
>>> a.append(0) # 在a的最后面追加一个0
>>> print(a)
> [1, 2, 3, 4, 1, 1, -1, 0]
>>> a = [1,2,3,4,1,1,-1]
>>> a.insert(1,0) # 在位置1处添加0
>>> print(a)
> [1, 0, 2, 3, 4, 1, 1, -1]
>>> a = [1,2,3,4,1,1,-1]
>>>a.remove(2) # 删除列表中第一个出现的值为2的项
>>>print(a)
> [1, 3, 4, 1, 1, -1]
>>>a = [1,2,3,4,1,1,-1]
print(a[0]) # 显示列表a的第0位的值
> 1
>>>print(a[-1]) # 显示列表a的最末位的值
> -1
Python提供slicing切片标记,可访问子列表
>>> a[0:2] # 获取索引为0到2(不包括2!)的元素
>[1, 2]
>>> a[1:] # 获取从索引为1的元素到最后一个元素
>[2, 3, 4, 99]
>>> a[:3] # 获取从第一个元素到索引为3**(不包括3!)**的元素
>[1, 2, 3]
>>> a[:-1] # 获取从第一个元素到最后一个元素的前一个元素之间的元素
>[1, 2, 3, 4]
>>> a[:-2] # 获取从第一个元素到最后一个元素的前二个元素之间的元素
>[1, 2, 3]
>>>a = [1,2,3,4,1,1,-1]
>>>print(a.index(2)) # 显示列表a中第一次出现的值为2的项的索引
> 1
>>>a = [4,1,2,3,4,1,1,-1]
>>>print(a.count(-1))
> 1
>>>a = [4,1,2,3,4,1,1,-1]
>>>a.sort() # 默认从小到大排序
>>>print(a)
> [-1, 1, 1, 1, 2, 3, 4, 4]
>>>a.sort(reverse=True) # 从大到小排序
>>>print(a)
> [4, 4, 3, 2, 1, 1, 1, -1]
> 1
一维的List是线性的List,多维List是一个平面的List,相当于矩阵
>>>a = [1,2,3,4,5] # 一行五列
>>> multi_dim_a = [[1,2,3],
[2,3,4],
[3,4,5]] # 三行三列
>>>print(a[1])
>2
>>>print(multi_dim_a[0][1])
>2
用小括号、或者无括号来表述,是一连串有顺序的数字。特殊的列表,建立后不能改变数据项。
>>> () #创建空元组
>>> tuple() #创建空元组
>>> (1,) #创建只有一个元素的元组
>>> print(a) # 输出列表的内容
>>> len(a) # 获取列表的长度
>>> a[0] # 访问第一个元素的值,索引由0开始
>>> a[4] = 99 # 赋值
list和tuple的元素均可以逐个迭代、输出、运用和定位
>>> for content in a_list:
print(content)
>>> for content_tuple in a_tuple:
print(content_tuple)
>>> for index in range(len(a_list)):
print("index = ", index, ", number in list = ", a_list[index])
>>> for index in range(len(a_tuple)):
print("index = ", index, ", number in tuple = ", a_tuple[index])
字典以键值对的形式存储数据。List是有顺序地输出输入,字典的存档形式则无需顺序。
列表采取的是遍历搜索,但是字典直接计算存放位置,就像查字典一样,速度更快。
但是字典需要占用大量内存,产生浪费。
dictionary ={key:value}
>>> me = {'height':180}
>>> me['height']
180
>>> me['weight'] = 70
>>> print(me)
{'height': 180, 'weight': 70}
>>> d = {1:'a','c':'b'}
>>> del me['height']
>>> d4 = {'apple':[1,2,3], 'pear':{1:3, 3:'a'}, 'orange':func}
>>> print(d4['pear'][3])
> a
>>> me['weight'] = 90
>>> me['weight']
90
>>> me['weight'] = 80
>>> me['weight']
80
in
判断键是否存在>>> d['age']
Traceback (most recent call last):
File "" , line 1, in <module>
KeyError: 'age'
>>> 'age' in me
False
语法:
dict.get(key, default=None)
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值。
除了用in
方法,dict.get()
也可以判断键是否存在,不存在返回None
,交互环境不显示结果。
>>>me,get('height')
180
>>>me.pop('weight')
80
>>>print(me)
{'height': 180}
dict的key必须是不可变对象。因为需要根据key计算value(Hash算法)。字符串、整数等可作为键,列表就不能作为键。
set() 的特点是会去除重复项,输出结果无序。可以理解成集合的元素具有唯一性。
>>> s = set(['python', 'python2', 'python3','python'])
>>> for item in s:
> print(item)
输出 python, python3, python2 。
sentence = 'Welcome Back to This Tutorial'
print(set(sentence))
输出 {‘l’, ‘m’, ‘a’, ‘c’, ‘t’, ‘r’, ‘s’, ’ ', ‘o’, ‘W’, ‘T’, ‘B’, ‘i’, ‘e’, ‘u’, ‘h’, ‘k’}
print(set(char_list+ list(sentence)))
输出 {‘l’, ‘m’, ‘a’, ‘c’, ‘t’, ‘r’, ‘s’, ’ ', ‘d’, ‘o’, ‘W’, ‘T’, ‘B’, ‘i’, ‘e’, ‘k’, ‘h’, ‘u’, ‘b’}
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 | s2
{1, 2, 3, 4}
unique_char.add('x')
print(unique_char)
输出 {‘x’, ‘b’, ‘d’, ‘c’, ‘a’}
unique_char.remove('x')
print(unique_char)
输出{‘b’, ‘d’, ‘c’, ‘a’}
但是如果集合没有该元素,使用set.remove(),系统会报错
如果集合没有该元素,使用set.discard(),系统就不会报错
同理:
unique_char.discard('d')
print(unique_char)
输出{‘b’, ‘c’, ‘a’}
unique_char.clear()
print(unique_char)
输出 set()
set1 = set(['x', 'b', 'd', 'c', 'a'])
set2 = set(['a','e','i'])
print(set1.difference(set2))
输出{‘d’,‘b’,‘x’,‘c’}
print(set1.intersection(set2))
输出{‘a’}
序列表示索引为非负整数的有序对象的集合,包括字符串、列表和元组。序列切片操作已在列表中介绍。
序列常用操作函数:
Python学习的内容参考
《Python编程:从入门到实践》-[美] Eric Matthes
《21天学通PYTHON》
莫烦Python
廖雪峰的Python教程
等