python打卡学习之基础练习4
列表的数据类型
整形,布尔型,浮点型
容器的数据类型
列表,元组,集合,字符串,字典
列表的形状
a = [1,2,3,4,5,6]
print(a,type(a))
# [1, 2, 3, 4, 5, 6] <class 'list'>
用range创造列表
x =list(range(10))
# [1,3,5, 7, 9] <class 'list'>
x =list(range(1,11,2))
print(x)
# [1, 3, 5, 7, 9]
x =list(range(10,1,-2)
print(x)
# [10, 8, 6, 4, 2]
用推导式创造列表
x =[ i for i in range(5)]
print(x)
# [0, 1, 2, 3, 4]
x =[i for i in range(1,10,2)]
print(x)
# [1, 3, 5, 7, 9]
x =[i for i in range(100) if i % 2!=0 or i%3 ==0]
print(x)
# [0, 1, 3, 5, 6, 7, 9, 11, 12, 13, 15, 17, 18, 19, 21, 23, 24, 25, 27, 29, 30, 31, 33, 35, 36, 37, 39, 41, 42, 43, 45, 47, 48, 49, 51, 53, 54, 55, 57, 59, 60, 61, 63, 65, 66, 67, 69, 71, 72, 73, 75, 77, 78, 79, 81, 83, 84, 85, 87, 89, 90, 91, 93, 95, 96, 97, 99]
x =[[0] * 4 for row in range(3)]
print(x)
x =[[0] * 4 for row in range(3)]
x[1][1] =1
print(x)
# [[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0]]
混合列表
mix =[1,'logo',3.14,[1,2,3]]
print(mix)
# [1, 'logo', 3.14, [1, 2, 3]]
empty 列表
empty = []
print(empty)
用列表添加元素
a =['a','b','c','d']
a.append('e')
print(a)
# ['a', 'b', 'c', 'd', 'e']
# 用extend添加元素
date =['Monday','Tuesday','Wednesday','Thursday','Friday']
date.extend(['Satuday','Sunday'])
print(date)
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Satuday', 'Sunday']
# 在指定位置插入元素
x =["Monday",'Tuesday','Wedensday',"Friday"]
x.insert(3,"Thursday")
print(x)
# ['Monday', 'Tuesday', 'Wedensday', 'Thursday', 'Friday']
删除元素
a =['Monday',"Tuesday",'Wedensday','Friday']
a.pop()
# a.pop([index-1]):
print(a)
# ['Monday', 'Tuesday', 'Wedensday']
a.remove("Monday")
print(a)
# ['Tuesday', 'Wedensday']
a =['Monday',"Tuesday",'Wedensday','Friday']
del a[:]
print(a)
# []
获取列表中的元素
date =['Monday','Tuesday','Wednesday','Thursday','Friday']
a=date[:] #
print(a)
b= date[1:2] #
print(b)
c =date[-3:-1]
print(c)
d =date[1:4:2]
print(d)
# ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
# ['Tuesday']
# ['Wednesday', 'Thursday']
# ['Tuesday', 'Thursday']
拷贝
list1 =['Monday','Tuesday','Wensday','Thurday','Friday']
list2 =list1[:]
print(list2)
# ['Monday', 'Tuesday', 'Wensday', 'Thurday', 'Friday']
对于拷贝的操作,“” = “” 默认的是同一指针地址的赋值,对其中变量进行操作,另一个变量也会跟着变化
反向排序
x=[123,456,788]
x.reverse()
print(x)
# [788, 456, 123]
常见字符操作
==, not in ,in ,+ ,X
x.reverse()
x.index()
列表练习
lst=[2,5,6,7,8,9,2, 9, 9]
请写程序完成下列操作:
1.在列表的末尾增加元素15
2.在列表的中间位置插入元素20
3.将列表[2, 5, 6]合并到lst中
4.移除列表中索引为3的元素
5.翻转列表里的所有元素
6.对列表里的元素进行排序,从小到大-次,从大到小- -次
lst.append(15)
lst.insert(len(lst)//2,15)
list =lst[0:2]
print(list)
lst.pop(3)
lst.reverse()
lst.sort()
lst.sort(reverse=True)
2、修改列表
问题描述:
lst= [1, [4, 6], True]
请将列表里所有数字修改成原来的两倍
lst[0] =lst[0] *2
lst[1][0] = lst[1][0]*2
lst[1][1] = lst[1][1]*2
lst[2] = lst[2] * 2
3、leetcode 852题 山脉数组的峰顶索引
如果一个数组k符合下面两个属性,则称之为山脉数组
数组的长度大于等于3
存在ii,ii >0 且i<len(k)−1i<len(k)−1, 使得
k[0]<k[1]<…<k[i−1]<k[j]>k[i+1]…>k[len(k)−1]
k[0]<k[1]<…<k[i−1]<k[j]>k[i+1]…>k[len(k)−1]
这个ii就是顶峰索引。
现在,给定一个山脉数组,求顶峰索引。
示例:
输入:[1, 3, 4, 5, 3]
输出:True
输入:[1, 2, 4, 6, 4, 5]
输出:False