列表,元组

列表,元组

列表的创建

list_a = ['列''表''的''创''建']  # 使用赋值运算符"="直接将一个列表赋值给变量
list_b = []  # 创建空列表
list_c = list((1, 3, 5, 7, 9))  # 使用list()函数将元组转换为列表
list(range(1, 10, 2))  # 使用list()函数将range转换转换为列表
list('helloword')  # 使用list()函数将字符串对象转换转换为列表

列表元素的增加

(1)使用"+"运算符将元素添加到列表

list_d = [3, 4, 5]
list_e = list_d+[7]
print(list_e)

(2)使用列表对象的append()方法

f = []
f.append(9)
print(f)

(3)通过extend()方法来增加列表元素

g = []
g.extend([11, 13, 15])
print(g)

(4)使用运算符"+="添加元素

h = []
h += '1234'
print(h)
h += range(3)
print(h)
h += map(str, range(3))
print(h)

(5)使用列表对象的insert()方法将元素添加至列表的指定位置

i = [1, 3, 5, 7]
i.insert(3, 6)  # 在下标为3的位置插入元素6
print(i)

(6) 使用乘法来拓展列表对象,将列表与整数相乘生成一个新列表

j = [2, 4, 6]
j*=3
print(j)

列表元素的删除

(1)使用del命令删除列表中指定位置上的元素

list_k = [3, 5, 7, 9]
del list_k[1]  # 删除第一个位置的元素
print(list_k)

(2)使用列表pop()方法删除并返回指定位置上的元素(默认为最后一个)上的元素

list_l = list((3, 5, 7, 9, 11))
list_l.pop()  # 删除最后一个元素
print(list_l)
list_l.pop(1)  # 删除第一个元素
print(list_l)

(3)使用列表对象的remove()方法删除首次出现的指定元素

list_m = [3, 5, 7, 9, 11]
list_m.remove(7)
print(list_m)

列表元素访问与计数

list_n = [1, 2, 34, 56, 7.5, 23, 2]
# (1)使用下标直接访问列表元素
print(list_n[3])
# (2)使用列表对象的index()方法获取指定元素首次出现的下标
print(list_n.index(2))
# (3)使用列表对象的count()方法统计指定元素在列表对象中出现的次数
print(list_n.count(2))

列表的成员资格判断

list_o = [3, 4, 5, 5.5, 7, 9, 11, 13, 15, 17]
print(2 in list_o)

列表切片的基本操作

list_p=[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]

(1)返回包含所有元素的新列表

print(list_p[::]) 

(2)逆序的所有元素

print(list_p[::-1])

(3)偶数位置,隔一个取一个

print(list_p[::2])

(4)奇数位置,隔一个取一个

print(list_p[1::2])

(5)从下标3开始的所有元素

print(list_p[3::])

(6)下标在[3,6)之间的所有元素

print(list_p[3:6])

(7)前100个元素,自动截断

print(list_p[0:100:1])

(8)下标4之后的所有元素,自动截断

print(list_p[4:])

使用切片原地修改列表内容

list_r=[3,5,7]

(1)在尾部追加元素

list_r[len(list_r):]=[9]
print(list_r)

(2) 替换前3个元素

list_r[:3] = [1, 2, 3] 
print(list_r)    

(3)删除前3个元素

list_r[:3]=[]
print(list_r)

(4)替换偶数位置上的元素

list_s=list(range(10))
list_s[::2]=[0]*5
print(list_s)

(5)使用del与切片结合来删除列表元素

list_t=[1,3,5,7,9,11,13,15,17]
del list_t[:3]  #删除前3个元素
print(list_t)
del list_t[::2] #删除偶数位置上的元素
print(list_t)

列表的排序

(1)使用列表对象的sort()方法进行原地排序

list_u = [11, 4, 5, 6, 17,3, 7, 9, 5, 13, 15]
list_u.sort()  #默认升序排序
print(list_u)
list_u.sort(reverse=True) #降序排序
print(list_u)
list_u.sort(key=lambda x:len(str(x))) #按转换成字符串的长度排序
print(list_u)

(2)使用内置函数sorted()对列表进行排序并返回新列表

list_v = [11, 4, 5, 6, 17,3, 7, 9, 5, 13, 15]
print(sorted(list_v))  #升序排序
print(sorted(list_v,reverse=True))  #降序排序

(3)使用列表对象的reverse()方法将元素原地逆序

list_w=[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
list_w.reverse()
print(list_w)

(4)使用内置函数reversed()对列表元素进行逆序排列并返回迭代对象

list_x=[3, 4, 5, 6, 7, 9, 11, 13, 15, 17]
x_list=reversed(list_x) #返回reversed对象
list(x_list)            #把reversed对象转换成列表
for i in x_list:
    print(i,end=' ')

内置函数map,list,any,all,zip的使用

(1)all()和any()函数

# all()函数用来测试列表、元组等序列对象以及map对象、zip对象等类似对象中是否所有元素都等价于True
print(all([1,2,3]))
print(all([0,1,2,3]))
# any()函数用来测试序列或可迭代对象中是否存在等价于True的元素
print(any([0,1,2,3]))
print(any([0]))

(2)zip()函数

# zip()函数返回可迭代的zip对象
a_list=[1,2,3]
b_list=['a','b','c']
c_list=zip(a_list,b_list) #返回zip对象
list(c_list) #把zip对象转换成列表

(3)list()函数

# list函数可以将任何可迭代数据类型转换为列表类型,并返回转换后的列表
a = list()  # 无参调用list函数创建一个空列表
b = list('python')  # 将字符串转换为列表
print(b)
c = ('hello world !')  # 将元组转换为列表
d = list(c)
print(d)
e={1,4,'wt'}  #将集合转换为列表
f=list(e)
print(f)

(4)map()函数

x=[1,2,3,4,5]
y=list(map(int,x)) #遍历x的每一个元素
print(y)

列表推导式的使用

(1) list = [ i for i in range(a,b) ]

list1=[i for i in range(1,21)]
print(list1)

(2) list = [ i for i in range(a,b) if i%2==0 ]

list2= [ i for i in range(0,101) if i%2==0 ] #遍历元素
print(list2)

(3) list = [(i, j) for i in range(a, b) for j in range(c, d)]

list3 = [(i, j) for i in range(0, 3) for j in range(2, 4)] #两层循环
print(list3)

(4) list = [结果1 if 条件 else 结果2 for i in 可迭代]

list4 = ['66', 'hhh', 'jsy', 'JSY', 'main']


# 如果是 h 开头的则将首字母大写,不是 h 开头则全部大写
list5 = [word.title() if word.startswith('h') else word.upper() for word in list4] 
print(list5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值