列表
创建列表
1. 直接创建
>>> a = [1, '1', '1.0']
>>> a
[1, '1', '1.0']
2. 使用list创建
>>> a = list([1, '1', '1.0']) >>> a [1, '1', '1.0'] #括号内可以用小括号、中括号、花括号。
方法
1. count 统计列表内元素的个数
>>> a
[1, 2, 3, 1, 1, 2, 3]
>>> a.count(1)
3
2. index 查找元素所在列表的位置(列表中有相同的元素返回第一个的位置)
>>> a
[1, 2, 3, 1, 1, 2, 3]
>>> a.index(1)
0
>>> a.index(2)
1
3. x in list 判断列表中是否有元素,返回True或False
>>> 1 in a
True
>>> 5 in a
False
4. append 列表尾添加元素
>>> a = list([1,2,3,1,1,2,3])
>>> a.append(4)
>>> a
[1, 2, 3, 1, 1, 2, 3, 4]
5. insert 在列表中指定位置添加元素
>>> a.insert(0, 5)
>>> a
[5, 1, 2, 3, 1, 1, 2, 3, 4]
6. extends() 在a列表后加入b列表的值
>>> b = [5, 6, 7]
>>> a.extend(b)
>>> a
[5, 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7]
7. 修改列表值
>>> a[0] = '5'
>>> a
['5', 1, 2, 3, 1, 1, 2, 3, 4, 5, 6, 7]
8. 删除列表值
pop() 删除元素并返回删除的值 默认删除最后一个元素,可以指定位置删除
>>> a.pop()
7
>>> a.pop(0)
'5'
remove() 删除指定元素,有多个相同元素时删除列表中的第一个
>>> a
[1, 2, 3, 1, 1, 2, 3, 4, 5, 6]
>>> a.remove(3)
>>> a
[1, 2, 1, 1, 2, 3, 4, 5, 6]
del 指定位置删除元素或者删除列表
>>> a
[1, 2, 1, 1, 2, 4, 5, 6]
>>> del a[1]
>>> a
[1, 1, 1, 2, 4, 5, 6]
>>> del a
>>> a
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
a
NameError: name 'a' is not defined
clear() 清空列表内元素
` >>> a
[1, 1, 1, 2, 4, 5, 6]
>>> a.clear()
>>> a
[]
9. reverse() 置换顺序
>>> a = [1,3,7,4,9]
>>> a.reverse()
>>> a
[9, 4, 7, 3, 1]
10. sort() 排序
>>> a
[9, 4, 7, 3, 1]
>>> a.sort()
>>> a
[1, 3, 4, 7, 9]
>>> a.sort(reverse = True) # 倒序排序
>>> a
[9, 7, 4, 3, 1]
11. enumerate()
>>> a
[9, 7, 4, 3, 1]
>>> for i, y in enumerate(a):
i,y
(0, 9)
(1, 7)
(2, 4)
(3, 3)
(4, 1)
元组(不能修改的列表)
创建元组
1. 直接创建
a = (1, 6, 3, 9, 5)
2. tuple()创建
>>> b = tuple((1,6,3,8,5)) #里面的括号可以用小括号,中括号,花括号
>>> b
(1, 6, 3, 8, 5)
元组内容一旦初始化后不能修改。
>>> b[1] = 6
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
b[1] = 6
TypeError: 'tuple' object does not support item assignment
方法
1. sorted()
>>> a
(1, 6, 2, 8, 4)
>>> sorted(a)
[1, 2, 4, 6, 8]
字典
字典是python中唯一的映射类型,可哈希表示key必须是不可变的类型,如:数字、字符串、元组。可变类型如:列表、字典。
>>> a
(1, 6, 2, 8, 4)
>>> p = {a: 5}
>>> p
{(1, 6, 2, 8, 4): 5}
>>> b
[1, 2, 3, 4]
>>> p = {b:3}
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
p = {b:3}
TypeError: unhashable type: 'list'
创建字典
1. 直接创建
>>> dict1 = {'a': 'a', 1 : 1}
>>> dict1
{'a': 'a', 1: 1}
2. dict创建
>>> dict2 = dict(((1,1),('a','a')))
>>> dict2
{1: 1, 'a': 'a'}
方法
1. dict.setdefault(a, b) #如果dict中没有key a,则在字典中增加a;如果已存在a则返回已有a的值,但不改变原字典。
>>> dict2
{1: 1, 'a': 'a'}
>>> dict2.setdefault(444,111)
111
>>> dict2
{1: 1, 'a': 'a', 444: 111}
>>> dict2.setdefault(1, 4)
1
>>> dict2
{1: 1, 'a': 'a', 444: 111}
2. dict.get(a, b) #从字典中根据key取值,如果字典中存在key则返回字典中key对应的值,没有则返回b
>>> dict2
{1: 1, 'a': 'a', 444: 111}
>>> dict2.get(1,6)
1
>>> dict2.get(5,6)
6
3. del dict[a] #根据key删除字典中相应的数据
>>> dict2
{1: 1, 'a': 'a', 444: 111}
>>> del dict2[1]
>>> dict2
{'a': 'a', 444: 111}
4. clear() #清空字典内的所有数据
>>> dict2.clear()
>>> dict2
{}
5. popitem() #随即删除某组键值对,并以元组的方式返回
>>> dict2
{1: 1, 'a': 'a', 444: 111}
>>> dict2.popitem()
(444, 111)
>>> dict2
{1: 1, 'a': 'a'}
6. fromkeys
>>> dict1 = {}
>>> dict1
{}
>>> dict1.fromkeys((1,2,3), 'numbers')
{1: 'numbers', 2: 'numbers', 3: 'numbers'}
>>> dict1
{}
>>> dict2 = dict1.fromkeys((1,2,3), 'numbers')
>>> dict2
{1: 'numbers', 2: 'numbers', 3: 'numbers'}
7. sorted
>>> dict1
{1: 1, 5: 7, 2: 10, 4: 3}
>>> sorted(dict1)
[1, 2, 4, 5]
>>> sorted(dict1.values())
[1, 3, 7, 10]
>>> sorted(dict1.items())
[(1, 1), (2, 10), (4, 3), (5, 7)]
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
创建set
>>> s1 = set(['111', '222', 'www']) #创建set,传入list
>>> s1
{'www', '111', '222'}
>>> s2 =set('yyfghgh')
>>> s2
{'f', 'y', 'g', 'h'}
方法
1.add 增加元素
>>> s1
{'www', '111', '222'}
>>> s1.add('wwww')
>>> s1
{'www', 'wwww', '111', '222'}
2. update
>>> s1.update('www')
>>> s1
{'w', 'wwww', '222', '111', 'www'}
3.remove
>>> s1.remove('w')
>>> s1
{'wwww', '222', '111', 'www'}
4. pop #随机删除内容
>>> s1
{'wwww', '222', '111', 'www'}
>>> s1
{'wwww', '222', '111', 'www'}
>>> s1.pop()
'wwww'
>>> s1
{'222', '111', 'www'}
5. clear #类似于列表
>>> s1
{'222', '111', 'www'}
>>> s1.clear()
>>> s1
set()
6. del
>>> del s1
>>> s1
Traceback (most recent call last):
File "<pyshell#150>", line 1, in <module>
s1
NameError: name 's1' is not defined