鱼C论坛

 找回密码
 立即注册
查看: 902|回复: 0

[学习笔记] 零py-(ep-12)

[复制链接]
发表于 2023-8-2 16:38:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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.g
a = [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.index("看barbie")
0
注意:可以用来在未知某元素的索引值时,企图将其替换的场景下
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("不存在主要元素。")

评分

参与人数 2荣誉 +10 鱼币 +4 贡献 +6 收起 理由
python爱好者. + 5 + 3 鱼C有你更精彩^_^
歌者文明清理员 + 5 + 4 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-9 00:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表