python更改list数据类型_python笔记2-数据类型:列表[List]常用操作

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,索引从0开始,依此类推。

序列都可以进行的操作:包括 索引,切片,加,乘,检查成员。

列表是最常用的Python数据类型,list 是一种有序的集合、列表是可变变量,即能通过列表的下标进行修改值

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

nums = [1, 2, 3, 'beijing', 'shanghai'] #定义列表

num1 = [1, 2, 3, 4, 5, 6] #List内元素为int类型

num2 = ['a','b', 'c', 'd'] #List内元素为str类型

List数据类型的如下:

增加元素:

nums = [1, 2, 3, 'beijing', 'shanghai'] #定义列表

nums.append('byz') #添加的值从最末尾添加,执行结果:[1, 2, 3,'beijing', 'shanghai','byz']

nums.insert(2, '888') #在指定位置添加元素,2代表下标,执行结果:[1, 2, '888', 3, 'beijing', 'shanghai', 'byz']

删除元素:

nums = [1, 2, 3, 'beijing', 'shanghai']#pop(num) 方法的返回值就是删除的指定位置的元素值

nums.pop() #默认删除最后一个元素,执行结果:[1, 2, 3, 'beijing']

nums.pop(2) #删除指定位置的元素,执行结果:[1, 2, 'beijing']

nums.clear() #清空列表,执行结果:[]

del nums[0] #使用del关键字,删除指定位置的元素,0代表下标,执行结果:[ 2, 'beijing']

nums.remove('beijing') #remove()删除方法,传入的参数是 元素值,pop()删除指定位置元素,传入的参数是下标

修改元素:

nums = [1, 2, 3, 'beijing', 'shanghai'] #定义列表#修改,通过下标来修改list元素值

nums[0] = 'hello' #修改List内的元素值,执行结果:['hello', 2, 3, 'beijing', 'shanghai']

nums[5] = 'haha' #修改不存在的下标,报错信息:IndexError: list assignment index out of range

查询元素:

nums = [1, 2, 3, 'beijing', 'shanghai'] #定义列表#查询,通过下标和for循环来遍历取值

print(nums[3]) #通过下标取值,下标从0开始,执行结果:beijing

for num innums:print(num) #通过for循环,遍历list内的元素

List中的count(元素)方法,可以用来判断元素是否存在List内,用法如下:

#判断元素是否存在List内,可以使用in方法,也可以使用count()方法

names = [1, 2, 3, 'beijing', 'beijing', 'shanghai']print(names.count('beijing')) #查找元素在list里面的次数,执行结果为:2

print(names.count('hahah')) #若查找的元素不在list里面,返回结果为0

num = names.count('beijing')if num >0:print('说明元素存在')else:print('元素不存在')

获取List元素的下标,用法如下:

names = [1, 2, 3, 'beijing', 'beijing', 'shanghai']print(names.index('beijing')) #获取beijing这个元素的下标值,如果有多个元素时,返回第一个元素的下标值

print(names.index('a')) #如果查找的元素不存,则报错:ValueError: 'a' is not in list

print(names.index('beijing', 2)) #可以指定从哪个元素开始查找,2代表开始查找的下标

print(names.index('beijing', 2, 3)) #可以指定查找范围,2,3代表开始、结束的下标值,查找范围不包含结束下标对应的元素,顾头不顾尾

List的extend方法,更改列表的值,用法如下:

names = [1, 2, 3, 'beijing', 'beijing', 'shanghai']

status= ['ywq', 'lhl', 'yqq']print('列表合并的结果:', status + names) #两个列表List合并,产生一个新的变量,执行结果:['ywq', 'lhl', 'yqq', 1, 2, 3, 'beijing', 'beijing', 'shanghai']

print('这个是extend:', status.extend(names)) #extens没有返回值,执行结果为:None

print('extens后的status:', status) #将names列表的 添加 到status里,status的值进行了更改

list的extend 与 appen方法的区别:

nums = [23, 34, 21, 2, 33, 456, 12]

status= ['a','b','c']print(status.extend(nums))print(status) #extends是将nums的添加到 status,执行结果为一维数组:['a', 'b', 'c', 23, 34, 21, 2, 33, 456, 12]

nums = [23, 34, 21, 2, 33, 456, 12]

status= ['a','b','c']print(status.append(nums))print(status) #append 是nums列表作为一个元素 添加到status列表的最后面,执行结果为二维数组:['a', 'b', 'c', [23, 34, 21, 2, 33, 456, 12]]

排序sort方法,用法如下:

nums = [23, 34, 21, 2, 33, 456, 12]print('nums排序前:', nums) #执行结果:[23, 34, 21, 2, 33, 456, 12]

nums.sort() #默认是升序排列

print('sort 排序后的nums:', nums) #执行结果:[2, 12, 21, 23, 33, 34, 456]

nums.sort(reverse=True) #指定reverse=True,排序为降序排列

print('降序排列的nums:', nums) #执行结果:[456, 34, 33, 23, 21, 12, 2]

反转数组,如下:

nums = [23, 34, 21, 2, 33, 456, 12]print(nums.reverse()) #反转的是nums的值,nums.reverse()没有返回值,执行结果为None

print(nums) #反转后的nums,执行结果:[12, 456, 33, 2, 21, 34, 23]

多维数组,获取元素的值:

num = [1, 2, 9.8, ['a', 'b', ['hehe', 'haha']]]print(num[3][0]) #获取二维数组 a这个元素值

print(num[3][2][0]) #获取三维数组,hehe这个元素值

切片操作

切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾;

names = ['zcl','py','byz']print(names[0:2]) #切片的意思就是从list或者字符串里面,取几个元素,执行结果['zcl', 'py']

print(names[:2]) #默认从0开始取值,开始下标0可以不用写,执行结果:['zcl', 'py']

print(names[1:]) #从第1个下标开始取值,取后面所有的值,那么结束下标值可以不写

print(names[:]) #不写开始、结束的下标时,默认取整个列表的值

print(names[-1:]) #取最后一个值,下标从-1开始

切片的步长:

nums = list(range(1,21))print(nums[0:11]) #执行结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

print(nums[0:11:2]) #每隔2个字符取一个值,2是步长,执行结果:[1, 3, 5, 7, 9, 11]

print(nums[::-1]) #切片步长为负数时,从后往前取值,取整个列表的值,执行结果:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

如果有写的不对的,欢迎指出~~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值