Nicole37 发表于 2023-8-2 16:38:14

零py-(ep-12)

本帖最后由 Nicole37 于 2023-8-2 16:38 编辑

列表3:

改:
a = ["看展","书店看书","citywalk","看落日","教研室"]
a = "看电影" #改列表中的元素,可以直接下标索引替换即可
a
['看展', '书店看书', 'citywalk', '看落日', '看电影']
a = ["旅游","旅游","旅游","旅游"] #可以用切片的方式改列表中连续的元素
a
['看展', '旅游', '旅游', '旅游', '旅游']
数字列表的排序问题:
由数字组成的列表可以直接使用sort()来进行从小到大的排序,使用reverse()进行从大到小排序
a =
a.sort()
a

a.reverse()
a

注意:
1、reverse() 是直接对列表进行倒叙排列,先调用sort(),在调用reverse(),才可将数字列表进行从大到小的排序,so,reverse()可以用在任何类型的列表中
2、直接对数字列表进行一步从大到小的排序:sort(reverse=True)
e.g
a =
a.sort(reverse=True)
a


查:
查找列表中某个元素出现的次数:count(元素)
a =
a.count(4)
1
b = ["看barbie","旅游","旅游","旅游","旅游"]
b.count("旅游")
4
查找列表中某个元素出现的索引值:index(元素) 返回的是第一次出现的下标值
b.index("看barbie")
0
注意:可以用来在未知某元素的索引值时,企图将其替换的场景下
b = "睡懒觉"
b
['睡懒觉', '旅游', '旅游', '旅游', '旅游']
index(x,start,end) :规定了index查找的范围:
c =
c.index(8,3,9) #从下标从3开始到9的范围内查找元素8的索引值
5
拷贝一个列表:copy()c =
d = c.copy()
d

d = c[:] #用切片的方法,将c中所有元素取出来,赋给d
d


作业:
1、注意 下标索引是从a到b-1 ,结束位置是不包含的
2、注意:所有的元素方法格式均为 列表名称.方法
3、s =
t = s
s = 1
print(t)

列表变量名的赋值只不过是引用的拷贝,如果你修改了列表中的元素,那么会影响到另外一个指向它的引用
4、摩尔计数,主要元素:
如果有一个列表,其中占比超过一半的元素称之为主要元素,那么如何获取一个列表的主要元素呢?题目给定的列表是:
摩尔投票法有时候也被称为“多数投票法”,该算法解决的问题是如何在任意多的候选人中(选票无序),找到获得票数最多的那个,摩尔投票法分为两个阶段:
对抗阶段:分属两个候选人的票数进行两两对抗抵消
计数阶段:计算对抗结果中最后留下的候选人票数是否有效
nums = #摩尔计数法
   
# 对抗阶段    major存放第一个元素,依次遍历后面的所有元素,count统计该元素出现的次数
major = nums #初始主角为第一个元素
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("不存在主要元素。")
页: [1]
查看完整版本: 零py-(ep-12)