python生成列表的方法解决问题_python 之列表(list)处理

本文详细介绍了Python列表的创建、读取、修改和删除操作,包括通过索引、append()、extend()、insert()方法以及pop()、remove()、clear()函数。还探讨了列表的切片操作和其它实用方法如count()、index()、reverse()。
摘要由CSDN通过智能技术生成

列表(list)

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可,一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、元组、字典、集合以及其他自定义类型的对象

1.创建列表

#创建一个空列表

list1 =list()#创建列表中包含各种数据类型列表

list2 = [{"fruit": "水果"}, ("apple", "苹果"), "orange", "橘子", 3.141592654, True, 1]#使用list()函数将元组、range对象、字符串或其他类型的可迭代对象类型的数据转换为列表

list3 = list(range(10))

list4= list((1, 2, 3, 4))

list5= list("banana")print(list1)print(list2)print(list3)print(list4)

2.列表读取

通过下标索引来读取列表中的元素,下标索引从0开始

#读取第一个元素

data1 =list2[0]print(data1)#索引不存在,会抛出越界异常

data2 = list2[8]print(data2)

使用for语句遍历读取

for i inlist2:print(i)

3.列表修改

通过索引针对性修改

print(list2)#通过索引指定修改某项元素

list2[0] = "pear"

print(list2)

通过append()方法增加元素

print(list2)#通过append()方法在列表末尾添加列表元素,append()可传入任意数据类型

list2.append(True)

list2.append({"pear": "梨"})print(list2)

通过extend()方法一次性在列表末尾添加一组列表元素,extend()方法只接受一个可迭代的对象作为参数,否则抛出异常'XXXXX' object is not iterable

#传入str类型

print(list2)

list2.extend("ab")print(list2)

print(list2)#传入range对象

list2.extend(range(0, 8, 2))print(list2)

print(list2)#传入列表(list)

list2.extend(["what", "why", "when", "how"])print(list2)

print(list2)#传入元组(tuple)

list2.extend(("fish", "rood"))print(list2)

print(list2)#传入字典(dict)

list2.extend({"1": 1, "2": 2})print(list2)

#传入不可迭代对象的参数

list2.extend(3.415)print(list2)

通过insert()方法将指定元素插入列表指定的位置中

print(list2)#将元素3插入到第一个位置

list2.insert(0,3)print(list2)

4.删除列表

使用pop()方法移除列表中的元素,若不传入参数,则默认移除末尾的元素,并返回所移除的值

print(list2)#使用pop()方法移除列表中的元素,若不传入参数,则默认移除末尾的元素,并返回所移除的值

data1 = list2.pop(1)

data2=list2.pop()print(data1)print(data2)print(list2)

remove()方法指定移除已知元素,若列表中存在多个与传入的参数值匹配,则移除首个匹配元素,无返回值

print(list2)#remove()方法指定移除已知元素,若列表中存在多个与传入的参数值匹配,则移除首个匹配元素,无返回值

list2.remove('orange')

list2.remove(1)print(list2)

使用clear()方法清空列表,无返回值

print(list2)#使用clear()方法清空列表,无返回值

list2.clear()print(list2)

5.列表切片

切片适用于列表、元组、字符串、range对象等类型,可以使用切片来截取列表中的任何部分,得到一个新列表,也可以通过切片来修改和删除列表中部分元素,甚至可以通过切片操作为列表对象增加元素

格式:[start:end:step]

start: 切片开始位置,默认为0

end: 切片结束位置(不包含结束位置),默认为列表长度

step: 切片的步长,默认为1,当步长省略时可以顺便省略最后一个冒号

正向切片

#截取整个list

slice1 =list2[:]#截取偶数位置的所有元素

slice2 = list2[::2]#截取下标在[2,4)间的所有元素

slice3 = list2[2:4]#截取奇数位置的所有元素

slice4 = list2[1::2]print(slice1)print(slice2)print(slice3)print(slice4)

#当切片时越界并不会报错,直接访问则会抛出越界异常

slice1 = list2[20:]print(slice1)

slice2= list2[20]print(slice2)

逆向切片

print(slice1)

#逆序列表slice1 = list2[::-1]print(slice1)

print(list2)#截取倒数第五位之后的所有元素

slice1 = list2[-4:-1]print(slice1)

遍历切片

slice1 = list2[:-1]for i inslice1:print(i)

6.list中其他常用方法list 中的copy()方法复制列表,等价于切片中[:]

copy_ =list2.copy()

slice_=list2[:]print(copy_)print(slice_)

list 中的count()方法用来统计元素出现的次数

count_ = list2.count(1)print(count_)

统计字符出现的个数或列表内出现的元素次数等也可以用 Counter方法, Counter 是一个 dict 的子类,用于计数可哈希对象

from collections importCounter

counter_=Counter(list3)print(counter_)#传入含有不可哈希对象列表

count_ =Counter(list2)print(count_)

list 中的index()方法用来查找某个元素所在的索引位置,当列表中有多个相同的元素时,默认返回第一个匹配的元素索引位置,若找不到则抛出异常

格式:[obj, start, end]

obj :需要查找的对象

start: 起始查找位置,不填写时默认为0

end: 结束查找位置,不包含end,不填写时默认为列表长度

print(list2)#查找列表中元素为1的索引位置

index_ = list2.index(1)print(index_)#在索引在区间[3,5)中查找元素为1的索引位置

be_ = list2.index(1, 3, 5)print(be_)

reverse()翻转列表,类似切片中的[::-1]

list2.reverse()print(list2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值