一、列表
1.创建列表
python
# 创建名为nalist的列表,列表元素为USA,CN,ASU
nalist=['USA','CN','ASU']
print("当前列表为:" "nalist", "列表元素为:",nalist)
# 创建列表时,列表中的元素数据类型可以各不相同,如int,string类型,甚至可以是一个列表类型,如在下例中[10,20]为一个list类型,他作为list3的一个元素存在与list3中。
list3=['marry', 2.0, 5, [10,20]]
print(list3)
python
#注:直接调用不带参数的list()函数时,将返回一个空列表,即:[]。
words=list('tomorrow')
print(words)
2.添加元素
(1)append整体添加
python
li = ["one","two","three"]
# append整体添加
li.append("four")
print(li)
(2)extend分散添加
python
li = ["one","two","three"]
# extend 分散添加,将另一个类型中的元素至一添加
li.extend("four")
print(li)
(3)insert在指定位置插入
python
# 在指定位置(下标)插入元素,若指定位置有元素,原有元素向后移。
li.insert(2,"four")
# 不指定下标,会报错
li.insert("four")
print(li)
3.修改元素
python
# 直接通过下标进行修改
li = [1,2,3]
li[1] = 'a'
print(li)
4.查找元素
- in:判断指定元素是否存在列表中,如果存在就返回True,不存在就返回False
- not in:判断指定元素是否存在列表中,如果不存在就返回True,存在就返回False
python
li = ['a','b','c','d']
print('e' in li)
5.定义一个列表,while循环保存已经存在的昵称
python
name_list = ['bingbing','susu','zivi']
while True:
name = input("请输入名字:")
# 判断昵称是否已经存在
if name in name_list:
print(f"您输入的昵称{name}已经存在了哦")
# 如果昵称不存在
else:
print(f"昵称{name}已经被您使用")
# 把昵称新增到列表
name_list.append(name)
print (name_list)
break
6.删除列表
(1)del删除
python
i = ['a','b','c','d']
# 删除列表
del li
# 根据下标删除
del 1i[2]
print(li)
(2)pop删除
python
# pop:删除指定下标的数据,python3版本默认删除最后一个元素
li = ['a','b','c','d' ]
# 默认删除最后一个元素
li.pop()
# 不能指定元素删除,只能根据下标删除
lio.pop(2)
print(li)
(3)remove删除
python
# remove:根据元素的值进行删除
li = ['a','b','c','d','b']
li.remove('d')
# 报错,列表中不存在这个元素
li.remove('t')
# 默认删除最开始出现的指定元素
li. remove ('b')
print(1i)
7.排序
- sort:将列表按特定顺序重新排列,默认从小到大。
- reverse:倒序,将列表倒置(反过来)
python
li = [1,5,3,2,4]
# 按照从小到大排序
li.sort()
# 倒序
li.reverse()
print(li)
8.列表推导式
(1)格式一:[表达式 for 变量 in 列表]
注意:in后面不仅可以放列表,还可以放range()、可迭代对象。
li = [1,2,3,4,5,6]
[print(1*5) for i in li] #前面的i是表达式
python
li = []
for i in range(1,6):
print(i)
li.append(i)
print(li)
# 可以写成下面的推导式
[li.append(i) for i in range(1,6)]
print(li)
(2)格式二:[表达式 for 变量 in 列表 if 条件]
python
# 把奇数放进列表里面
1i = []
for i in range(1,11):
if i % 2 == 1:
li. append (i)
print(li)
# 可以写成以下推导式
[li.append(i) for i in range(1,11) if i % 2 == 1]
print(li)
9.列表嵌套
含义:一个列表里面又有一个列表
python
# [4,5,6]是里面的列表
1i=[12,3,[4,5,6]]
# 取出里面的列表
print(1i[3])
# 取出内列表中的下标为2的元素
print(li[3][2])
二、元组
1.基本格式:元组名=(元素1,元素2,元素3...)
python
# 所有元素包含在小括号内,元素与元素之间用,隔开,不同元素也可以是不同的数据类型
tua =(1,2, 3,'a','b')
print(type(tua))
tua =() # 定义空元组
print(type(tua))
tub =('a',) # 只有一个元素的时候,末尾必须加上,否则返回唯一的值的数据类型
print(type(tub))
2.元组与列表的区别
(1)元组只有一个元素末尾必须加,列表不需要
python
1i = [1]
print (type (li))
(2)元组只支持查询操作,不支持增删改操作
python
li = [1,2,3]
li[1] = 'a'
print(li)
python
tua =(1,2,3,1)
print (tua[2]) #元组也有下标,从左往右,从0开始
tua[2] = 'a' # 报错,元组不支持修改操作
count()、index()、1en()跟列表的用法相同
print(tua.index(2))
print(tua.count(1))
print(len(tua))
print (tua[l:])
3.应用场景
python
#函数的参数和返回值
#格式化输出后面的()本质上就是一个元组
name = 'bingbing'
age = 18
print("%s的年龄是:%d" % (name,age))
info = (name,age)
print(type(info))
print("%s的年龄是:%d" % info)
#数据不可以被修改,保护数据的安全
三、字典
1.基本格式:字典名=(键1:值1,键2,值2...}
python
# 键值对形式保存,键和值之间用:隔开,每个键值对之间用,隔开
dic = {'name':'bingbing','age':18}
print (type (dic))
# 字典中的键具备唯一性,但是值可以重复
dic2 = {'name':'bingbing','name':'susu'} #不会报错,键名重复前面的值会被后面的值覆盖。
print(dic2)
dic3 = {'name':'bingbing','name2':'bingbing'}
print (dic3)
2.查看元素
python
# 变量名[键名]
dic = {'name':'bingbing','age':18}
print(dic[2]) # 不可以根据下标,字典中没有下标,查找元素需要根据键名,键
# 18
print(dic['age'])
# 报错,键名不存在
print(dic['sex'])
python
# 变量名.get(键名)
dic = {'name':'bingbing','age':18}
print(dic.get('name')) # bingbing
print(dic.get('tel')) # None --键名不存在,返回None
print(dic.get("tel","不存在")) # 不存在 --如果没有这个键名,返回自己设置的默认值
3.修改元素
python
# 变量名[键名]= 值
dic =('name':'bingbing','age':18}
dic['age']=20 # 列表通过下标修改,字典通过键名修改
Print(dic)
4.添加元素
python
# 变量名[键名] = 值
# 注意:键名存在就修改,不存在就新增。
dic = {'name':'bingbing','age':18}
dic['te1'] = 1244668 # 此时没有tel键,新增进字典
print(dic)
dic['te1'] = 12345 # 此时已经有te1键了,修改tel对应的值
print(dic)
dic['remark'] = "在线征婚"
print (dic)
5.删除元素
(1)del删除
python
# 删除整个字典 del 字典名
dic = {'name':'bingbing','age':18)
del dic
print(dic) #报错,已经被删除了,找不到这个字典
python
# 删除指定键值对,键名不存在就会报错 del 字典名[键名]
dic = {'name':'bingbing','age':18}
del dic['age']
del die['tel'] # 没有指定的键就会报错
print(dic)
(2)clear清空
python
# clear():清空整个字典里面的东西,但保留了这个字典
dic = {'name':'bingbing','age':18)
dic.clear()
print (dic)
(3)pop删除
python
# pop()删除指定键值对,键不存在就会报错
dic = {'name':'bingbing','age':18}
dic.pop("age")
print(dic)
dic.pop('tel') # 报错,不存在键名
dic.pop() # 报错,没有指定键名
dic.popitem() # 3.7之前的版本是随机删除一个键值对,3.7之后的版本默认删除最后一个元素。
print(dic)
6.len()求长度
python
dic = {'name':'bingbing','age':18,'tel':'123'}
print(len(dic)) # 3,字典中有3个键值对
li = [1,2,3,4]
print (len(li))
st ='hello'
print(len(st))
7.keys()返回字典里所有键
python
dic = {'name':'bingbing','age':18,'tel':'123'}
print(keys(len))
8.values():返回字典里面包含的所有值
python
dic = {'name':'bingbing','age':18}
print (dic.values())
for i in dic.values():
print(i)
9.item():返回字典里面包含的所有键值对,键值对以元组形式
dic = {'name':'bingbing','age':18}
print(dic.items())
for i in dic.items():
print (i,type(i)) # i是元组类型
10.字典的应用场景
python
# 使用键值对,存储描述一个物体的相关信息
四、集合
1.基本格式:集合名={元素1,元素2,元素3...}
python
s1 = {1,2,3}
s1={} # 定义空字典
s1= set() # 定义空集合
print(sl,type(s1))
2.集合具有无序性
python
s1 = {'a','b','c','d','e','f'}
print(s1) # 每次运行结果都不一样
s2 = {1,2,3,4,5,6}
print(s2) # 数字运行结果一样
python
# 集合无序的实现方式涉及hash表(工解)
print(hash('a'))
print(hash('b'))
print(hash('c'))
# 每次运行结果都不同,hash值不同,那么在hash表中的位置也不同,这就实现了集合的无序性
print(hash(1))
print(hash(2))
print(hash(3))
# python中int整型的hash值就是它本身,在hash表中的位置不会发生改变,所以顺序也不会改变
print(hash('1'))
print(hash('2'))
print(hash('3'))
print(hash('4'))
# 用引号括起来整型变成了字符串类型,所以hash值还是会发生改变
# 无序性,不能修改集合中的值。
3.集合具有唯一性,可以自动去重
4.添加元素
(1)add 添加的是一个整体
python
s2 = {1,2,3,4}
print("原集合:",s2)
# 集合的唯一性,决定了如果需要添加的元素在原集合中已经存在,就不进行任何操作
s2.add(1)
s2.add(5) # 一次只能添加一个元素
s2.add(5,6)
s2.add((5,6))
print("现集合:",s2)
5.删除集合元素
python
#通过 remove(key) 方法可以删除元素。
#discard(key)也可以删除元素,不同的是,如果删除的元素不在集合中,remove会报错,discard不会报错
#例如: clear() 删除集合的所有元素(使它成为空集)
s1 = set('abcde')
print(s1)
s1.remove('a')
print(s1)
#当集合中没有a元素时,再次remove会报错
s1.remove('a')
#使用 discard() 删除则不会报错
s1.discard('a')
s1.discard('b')