数据类型(二)

1.列表(list)

列表(list),是一个有序且可变的容器,在里面可以存放多个不同类型的元素。

1.1定义

user_list = ["苍老师","有坂深雪""大桥卫计"]

user_list = []
user_list.append("铁锤")
user_list.append("钢弹")
print(user_list)  # ["铁锤"."钢弹"]

不可变类型:字符串、布尔、整型 (已最小,内部数据无法进行修改)
可变类型:列表(内部数据元素可以修改)

1.2独有功能

字符串只能重新创建一个新的
列表可以直接修改其中的元素
列表常见的独有功能如下:
1.追加,在原列表中尾部追加值。

2.批量追加,将一个列表中的元素逐一添加到另外一个列表

tools = ["把追安","caidao","langtou"]
tools.extend( [ 11,22,33] )
print(tools)   # ["把追安","caidao","langtou",11,22,33]
tools = ["把追安","caidao","langtou"]
weapon = ( [ 11,22,33] )
weapon.extend(tools)
print(tools)	# ["把追安","caidao","langtou"]
print(weapon)	# ["把追安","caidao","langtou",11,22,33]

.extend() 相当于 for 循环加上 .append( )
3.插入,在愿列表的指定索引位置插入值

user_list = ["苍老师""有坂深雪","daqianweijiu"]

user_list.insert(0,"马蓉")
user_list.insert(2,"李小璐")
print(user_list) 

4.从原列表删除(从左到右找到第一个删除)【慎用,里面没有就会报错】

user_list = ["把追安","caidao","langtou",11,22,33]
user_list.remove("把追安")
print(user_list)   # ["caidao","langtou",11,22,33]

5.在原列表中根据索引踢出某个元素 【根据索引位置删除】

user_list = ["把追安","caidao","langtou",11,22,33]
user_list.pop(1)  # ["把追安","langtou",11,22,33]
print(user_list)

ele = user_list.pop(1)  # "caidao" 可以拿到删除的值

6.清空列表

user_list = ["fsd","ghgg"]
user_list.clear()
print(user_list)  # []

7.根据值获取索引(从左到右找到第一个)【找不到会报错】

user_list = ["fsd","ghgg","xcb","ertwe"]
if "fsd" in user_list:
	index = user_list.index("fsd")
	print(index)

8.列表元素排序

num_list = [12,45,687,5444,55,0]
num_list.sort()  # 从小到大排序
num_list.sort(reverse=True)   # 让列表从大到小排序
num_list.sort(key=)
"""
### sort排序原理  ###
无论是整型还是字符串
均是根据编码的大小排序
从第一个字符的编码开始比较

v1 = ord("王")
可以获取10进制的表示
hex(v1)  # 16进制表示
"""
注意:如果排序时既有整型和字符串无法进行比较(尽量数据类型统一)

9.翻转原列表

user_list = ["fsd","ghgg","xcb","ertwe"]
user_list.reverse()

print(user_list)

1.3公共功能

  1. 相加

  2. 相乘

  3. 运算符 in 判断包含关系
    注意:列表检查元素是否存在时,是采用逐一比较的方式,但是效率比较低

  4. 获取长度
    len( )

5.索引

# 删
del user_list[1]

user_list.remove("")
ele = user_list.pop(1)

注意:超出索引范围会报错

6.切片(很少用)
.reverse()可以实现翻转但是字符串不可以,.reverse()是列表的独有功能

千万不要在循环的过程中,边循环列表的数据,边删除列表里的数据,会出现索引跳跃删除

# 错误方式, 有坑,结果不是你想要的。

user_list = ["刘的话", "范德彪", "刘华强", '刘尼古拉斯赵四', "宋小宝", "刘能"]
for item in user_list:
    if item.startswith("刘"):
        user_list.remove(item)
        
print(user_list)
# 正确方式,倒着删除。
user_list = ["刘的话", "范德彪", "刘华强", '刘尼古拉斯赵四', "宋小宝", "刘能"]
for index in range(len(user_list) - 1, -1, -1):
    item = user_list[index]
    if item.startswith("刘"):
        user_list.remove(item)
print(user_list)

1.4转换

  • int、bool无法转换成列表
  • str
name = "武沛齐"
data = list(name)   # ["武","沛","齐"]
  • 超前
v1 = (11,22,33,44)  # 元组
vv1 = list(v1)

v2 = {"alex","elir","bsb"}  # 集合
vv2 = list(v2)

1.5其他

1.5.1嵌套

列表属于容器,内部可以存放各种数据,所以它也支持列表的嵌套,如:

data = ["谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝"]

对于嵌套的值,可以根据之前学习的索引知识点来进行学习,例如:

data = ["谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝"]

2.元组

列表(list),是一个有序且可变的容器
元组(tuple),是一个有序且不可变的容器

|记住一句话:“我儿子永远不能换成是别人,但我儿子可以长大”

2.1定义

va = (11,22,33)
v2 = ("李姐","alex")
v3 = (11,22,3,"李姐","alex",True)

# 建议:在元组最后多加一个逗号
v3 = (11,22,3,"李姐","alex",True,)
d1 = (1,)  不加会认成整型

#建议:在元组最后多加一个逗号,用于标识他是一个元组

2.2独有功能

2.3公共功能

1.相加

2.相乘

3.获取长度

4.索引

5.切片

user_list = ["范德彪","刘华强","尼古拉机罩死",]
print(user_list[0:2])
print(user_list[1:])
print(user_list[:-1])

6.步长

元组切片都是新生成一个单位

7.for循环
目前:只有str、list、tuple可以被for循环

2.4转换

其他类型转换为元组,使用tuple(其他类型)目前只有字符串和列表可以转换为元组。

2.5嵌套

由于元组和列表都可以充当容器,他们内部可以放很多元素,并也支持元素内的各种嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值