马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Nicole37 于 2023-8-2 16:38 编辑
列表3:
改:a = ["看展","书店看书","citywalk","看落日","教研室"]
a[4] = "看电影" #改列表中的元素,可以直接下标索引替换即可
a
['看展', '书店看书', 'citywalk', '看落日', '看电影']
a[1:] = ["旅游","旅游","旅游","旅游"] #可以用切片的方式改列表中连续的元素
a
['看展', '旅游', '旅游', '旅游', '旅游']
数字列表的排序问题:
由数字组成的列表可以直接使用sort()来进行从小到大的排序,使用reverse()进行从大到小排序a = [1,8,6,7,2,9,3,4]
a.sort()
a
[1, 2, 3, 4, 6, 7, 8, 9]
a.reverse()
a
[9, 8, 7, 6, 4, 3, 2, 1]
注意:
1、reverse() 是直接对列表进行倒叙排列,先调用sort(),在调用reverse(),才可将数字列表进行从大到小的排序,so,reverse()可以用在任何类型的列表中
2、直接对数字列表进行一步从大到小的排序:sort(reverse=True)
e.ga = [1,8,6,7,2,9,3,4]
a.sort(reverse=True)
a
[9, 8, 7, 6, 4, 3, 2, 1]
查:
查找列表中某个元素出现的次数:count(元素)a = [1,8,6,7,2,9,3,4]
a.count(4)
1
b = ["看barbie","旅游","旅游","旅游","旅游"]
b.count("旅游")
4
查找列表中某个元素出现的索引值:index(元素) 返回的是第一次出现的下标值注意:可以用来在未知某元素的索引值时,企图将其替换的场景下b[b.index("看barbie")] = "睡懒觉"
b
['睡懒觉', '旅游', '旅游', '旅游', '旅游']
index(x,start,end) :规定了index查找的范围:c = [1,8,5,6,9,8,4,5]
c.index(8,3,9) #从下标从3开始到9的范围内查找元素8的索引值
5
拷贝一个列表:copy()c = [1,8,5,6,9,8,4,5]
d = c.copy()
d
[1, 8, 5, 6, 9, 8, 4, 5]
d = c[:] #用切片的方法,将c中所有元素取出来,赋给d
d
[1, 8, 5, 6, 9, 8, 4, 5]
作业:
1、注意 下标索引是从a到b-1 ,结束位置是不包含的
2、注意:所有的元素方法格式均为 列表名称.方法
3、s = [1, 2, 3, 4, 5]
t = s
s[2] = 1
print(t)
[1, 2, 1, 4, 5]
列表变量名的赋值只不过是引用的拷贝,如果你修改了列表中的元素,那么会影响到另外一个指向它的引用
4、摩尔计数,主要元素:
如果有一个列表,其中占比超过一半的元素称之为主要元素,那么如何获取一个列表的主要元素呢?题目给定的列表是:[2, 2, 4, 2, 3, 6, 2]
摩尔投票法有时候也被称为“多数投票法”,该算法解决的问题是如何在任意多的候选人中(选票无序),找到获得票数最多的那个,摩尔投票法分为两个阶段:
对抗阶段:分属两个候选人的票数进行两两对抗抵消
计数阶段:计算对抗结果中最后留下的候选人票数是否有效nums = [2, 2, 4, 2, 3, 6, 2] #摩尔计数法
# 对抗阶段 major存放第一个元素,依次遍历后面的所有元素,count统计该元素出现的次数
major = nums[0] #初始主角为第一个元素
count = 0 #将其出现次数设为0
for each in nums: #循环遍历所有的元素
if count == 0: #若当count的值经过加加减减变成0时,则说明当前的主角票数抵消完了,换下一个主角,即当前的元素
major = each
if each == major: #如果count的值没到0,则说明主角不变,若遍历的当前元素值与主角相等,则票数加一
count += 1
else:
count -= 1 #如果不等,则票数减一
# 统计阶段
if nums.count(major) > len(nums) / 2: #最终的留下的major是有票数 或者票数为的,计算该元素在列表中出现的次数,若超过半数,则为主要元素,否则不存在
print("主要元素是:", major)
else:
print("不存在主要元素。")
|