列表
比C语言的数组强大的地方在于 列表中的元素可以是不同类型的
列表的定义
testList = [1, 'a']
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
列表的打印
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
print(namesList[2])
结果:
xiaoWang
xiaoZhang
xiaoHua
列表的循环遍历
for循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
print(name)
while循环
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
length = len(namesList)
i = 0
while i<length:
print(namesList[i])
i+=1
列表的相关操作
列表的嵌套操作
元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号(),列表使用方括号[ ]。
元组的定义
元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。
>>> aTuple = ('et',77,99.9)
>>> aTuple
('et',77,99.9)
>>> aTuple = (10,)
//注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型
元组的相关操作
<1>访问元组(下标访问)
<2>修改元组
python中不允许修改元组的数据,包括不能删除其中的元素。
但是如果元组里面有列表,修改列表里面的数据则是支持的。
tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 访问到列表
tuple2[2][0] = 'aaaaa'
print(tuple2)
# 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
<3>count, index, len
index():查找某个数据,如果数据存在返回对应的下标,否则报错。
count():统计某个数据在当前元组出现的次数。
len():统计元组中数据的个数。
>>> a = ('a', 'b', 'c', 'a', 'b')
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>> a.index('a', 1, 4)
3
>>> a.count('b')
2
>>> a.count('d')
0
>>> print(len(a))
5
字典
- 字典和列表一样,也能够存储多个数据。
- 字典中找某个元素(key:value)时,是根据key进行。(非下标)
- 字典使用大括号{ },列表使用方括号[ ],元组使用小括号()。
字典的定义
# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()
字典的访问(根据key)
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
print(info['name'])
print(info['address'])
结果:
班长
地球亚洲中国北京
若访问不存在的键,则会报错:
>>> info['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:
>>> age = info.get('age')
>>> age #'age'键不存在,所以age为None
None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
>>> age
18
集合
特点:自动去除重复元素,无序,可变。、
集合的定义
创建集合使用{}
或set()
, 但是如果要创建空集合只能使用set()
,因为{}
用来创建空字典。
s1 = {10, 20, 30, 40, 50}
print(s1) #{40,10,50,20,30}
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2) #{40,10,50,20,30}
s3 = set('abcdefg')
print(s3) #{'c','g','f','a','d','e'}
s4 = set()
print(type(s4)) # set
s5 = {}
print(type(s5)) # dict
集合可以去掉重复数据;
集合数据是无序的,故不支持下标
集合常见操作方法
增加数据
- add()
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}
- update(), 追加的数据是序列。
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)
删除数据
- remove(),删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)
- discard(),删除集合中的指定数据,如果数据不存在也不会报错。
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
- pop(),随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)
查找数据
- in:判断数据在集合序列
- not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)