列表:存储一些数据的容器(有序,可修改)-----常用 *******
元组:存储一些数据的容器(有序,不可修改)
一、列表常用功能:
1.追加,在原列表中尾部追加值
datalist = []
v1 = input("请输入爱好1")
datalist.append(v1)
v2 = input("请输入爱好2")
datalist.append(v2)
print(datalist) #["篮球","足球"]
# 案例
user_list = []
while True:
user = input("请输入用户名(Q退出):")
if user == "Q":
break
user_list.append(user)
print(user_list)
2.批量追加,将一个列表中的元素逐一添加另外一个列表。
tools = ["你好","再见","开始"]
weapon = ["失之","得之"]
tools.extend(wweapon) #将weapon中的值逐一加入到tools里
print(tools) #["你好","再见","开始","失之","得之"]
weapon.extend(tools) #将tools中的值逐一加入到weapon里
print(weapon) #["失之","得之","你好","再见","开始"]
3.在原列表的指定索引位置插入值
user_list = ["李浩","理想","蔚来"]
user_list.insert(0,"王涛")
# 案例
name_list = []
while True:
name = input("请输入购买火车票用户姓名(Q/q退出):")
if name.upper() == "Q":
break
if name.startswith("刁"):
name_list.insert(0, name)
else:
name_list.append(name)
print(name_list)
4.在原列表中根据值删除(从左到右找到第一个删除,慎用,找不到会报错)
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
user_list.remove("Alex")
print(user_list)
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
#可以先做一个判断,防止报错
if "Alex" in user_list:
user_list.remove("Alex")
print(user_list)
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
while True:
if "Alex" in user_list:
user_list.remove("Alex")
else:
break
print(user_list)
5.在原列表中根据索引提出某个元素(根据索引位置删除)
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
# 0 1 2 3 4
user_list.pop(1)
print(user_list) # ["王宝强","Alex","贾乃亮","Alex"]
user_list.pop()
print(user_list) # ["王宝强","Alex","贾乃亮"]
item = user_list.pop(1)
print(item) # "Alex"
print(user_list) # ["王宝强","贾乃亮"]
# 案例:排队买火车票
# ["alex","李杰","eric","武沛齐","老妖","肝胆"]
user_queue = []
while True:
name = input("北京~上海火车票,购买请输入姓名排队(Q退出):")
if name == "Q":
break
user_queue.append(name)
ticket_count = 3
for i in range(ticket_count):
username = user_queue.pop(0)
message = "恭喜{},购买火车票成功。".format(username)
print(message)
# user_queue = ["武沛齐","老妖","肝胆"]
faild_user = "、".join(user_queue) # "武沛齐、老妖、肝胆"
faild_message = "非常抱歉,票已售完,以下几位用户请选择其他出行方式,名单:{}。".format(faild_user)
print(faild_message)
6.清空原列表
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
user_list.clear()
print(user_list) # []
7.根据值获取索引(从左到右找到第一个删除,慎用,找不到会报错)
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
# 0 1 2 3 4
if "Alex" in user_list:
index = user_list.index("Alex")
print(index) # 2
else:
print("不存在")
8.列表元素排序(注意:排序时内部元素无法比较时,程序会报错)
# 数字排序
num_list = [11, 22, 4, 5, 11, 99, 88]
print(num_list)
num_list.sort() # 让num_list从小到大排序
num_list.sort(reverse=True) # # 让num_list从大到小排序
print(num_list)
# 字符串排序
user_list = ["王宝强", "Ab陈羽凡", "Alex", "贾乃亮", "贾乃", "1"]
# [29579, 23453, 24378]
# [65, 98, 38472, 32701, 20961]
# [65, 108, 101, 120]
# [49]
print(user_list)
"""
sort的排序原理
[ "x x x" ," x x x x x " ]
"""
user_list.sort()
print(user_list)
9.反转原列表
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
user_list.reverse()
print(user_list)
10列表属于容器,内部可以存放各种数据,所以他支持列表的嵌套
data = [ "谢广坤",["海燕","赵本山"],True,[11,22,[999,123],33,44],"宋小宝" ]
二、元组(都是一些公共的功能,列表同样也有这些功能)
1.相加,两个列表相加获取生成一个新的列表。
2.相乘,列表*整型 将列表中的元素再创建N份并生成一个新的列表。
3.获取长度(len)
4.索引、切片、步长
5.for循环
6.其他类型转换为元组,使用tuple(其他类型)
,目前只有字符串和列表可以转换为元组。