鱼C论坛

 找回密码
 立即注册
查看: 21583|回复: 35

[知识点备忘] 第021讲:列表(III)

[复制链接]
发表于 2020-6-15 04:07:54 | 显示全部楼层 |阅读模式
购买主题 已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-23 14:45:12 | 显示全部楼层
0. 可以
1.  s.append 只能添加1个元素,应该用s.extend([4,5,6])
2. s.insert(len(s),6)
3. [1, 2, 3, 4, 5, 'FishC']
4. s.insert(len(s),"上山打老虎")
5. s[len(s):] = [ '上', '山', '打', '老', '虎']
6. [1, 2, 3, 2, 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-1 20:41:10 | 显示全部楼层
s = []
ins = input('请输入目标列表:')
for each in ins:
    s.append(int(each))
print('列表创建完毕:',s)
s.sort()
s1 = []

print('排序后:',s)
n = int(len(s))
middle = (s[int(n/2)])

for each in s:
    if not each in s1:
        s1.append(each)
print('删重后的列表:',s1)
counts = 0
temp = 0
for each in s1:
    temp = s.count(each)
    if temp>counts:
        counts = temp
        maxcount = temp
        maxeach = each
print('重复最多元素:',maxeach)
print('重复最多元素的数量:',maxcount)
if maxcount > n // 2:
    print("主要元素是:", maxeach)
else:
    print("不存在主要元素。")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-5-6 16:57:02 | 显示全部楼层
道阻且长行则将至
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-17 12:58:33 | 显示全部楼层
第一次听说浅拷贝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-24 15:34:14 | 显示全部楼层
小甲鱼如果要是找列表里最后一个下标可不可以用index函数从-1的起始位值开始查找吗,我试了一下结果报错显示列表里不存在查找的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-31 20:24:32 | 显示全部楼层
a=[1,2,3,4,5,6,6]
b=a
b
[1, 2, 3, 4, 5, 6, 6]
请教一下,如上所示,如果需要把a列表赋值给其他变量b,直接赋值就行了啊,为什么还要用copy或[:]方法呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-6 17:20:30 | 显示全部楼层
越来越多知识点了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-7 20:50:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-11 01:13:40 From FishC Mobile | 显示全部楼层
学习的道路慢起来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-25 22:12:13 From FishC Mobile | 显示全部楼层
我的nusm.sort(reverse=Ture)会报错为什么呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-25 22:15:31 From FishC Mobile | 显示全部楼层
yechen.kln 发表于 2022-10-25 22:12
我的nusm.sort(reverse=Ture)会报错为什么呀?

我True打成Ture了难怪报错兄弟们有没有一样的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-25 22:51:24 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-27 15:13:48 | 显示全部楼层
学习打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-31 21:04:05 | 显示全部楼层
梦回凡尘几寸欢 发表于 2022-6-24 15:34
小甲鱼如果要是找列表里最后一个下标可不可以用index函数从-1的起始位值开始查找吗,我试了一下结果报错显 ...

nums.index(nums[-1])可以,但最后一个下标不就是len(nums)-1吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-13 16:09:54 | 显示全部楼层
练习练习练习

python="不给不给"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-14 15:29:11 | 显示全部楼层
nums = [2, 2, 4, 2, 3, 6, 2]
nums.sort()
length = len(nums)
half = nums[length // 2]           
count = 0
for each in nums:
    if each == half:
        count += 1
if count > length / 2:
    print("存在主要元素是:", half)
else:
    print("不存在主要元素!")

half的值为什么会等于2 ? length 等于nums的值等于6  那half的值应该是等于3才对?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-30 17:58:40 | 显示全部楼层
打卡学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-8 22:55:28 | 显示全部楼层
二、作业
问答题
0. 请问如何不直接使用下标索引值的前提下,将下面列表中的 “黑寡妇
“ 替换为 ”神奇女侠“?
>>> heros = ['蜘蛛侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']
答:heros[heros.index('黑寡妇')] = '神奇女侠' 。

1. 请问如何将下面列表中的 “蜘蛛侠” 和 “绿巨人” 替换为 “猪猪侠” 和 “女
巨人”?
>>> heros = ['蜘蛛侠', '绿巨人', '神奇女侠', '鹰眼', '灭霸', '雷神']
答:heros[0:2] = ['猪猪侠','女巨人']

2. 请问以下代码会打印什么内容?
>>> s = [1, 2, 3, 4, 5]
>>> s[1:2] = [6, 6]
>>> print(s)
答:[1,6,6,3,4,5]

3. 请问以下代码会打印什么内容?
>>> s = [1, 2, 3, 4, 5]
>>> s[:] = "FishC"
>>> print(s)
答:['F','i','s','h','C']

4. 请问以下代码会打印什么内容?
>>> s = [1, 2, 3, 4, 5]
>>> s[2:4] = []
>>> print(s)
答:[1,2,5]

5. 请问以下代码会打印什么内容?
>>> s = [1, 2, 3, 4, 5]
>>> t = s
>>> s[2] = 1
>>> print(t)
答:[1,2,1,4,5]

6. 我们知道,列表的 index() 方法可以找到第一个匹配元素的下标,那么你有没有办法在不改变原列表的情况下,找到最后一个匹配元素的下标
呢?(有两种方法可以实现)
答:
s = [1,2,3,4,5,4,3,2]
print(len(s[::-1])-1-s[::-1].index(4))


动动手
0. 如果有一个列表,其中占比超过一半的元素称之为主要元素,那么如
何获取一个列表的主要元素呢?
        题目给定的列表是:[2, 2, 4, 2, 3, 6, 2]
        请根据解题思路进行编程。
解题思路:
        根据主要元素的定义,对列表进行排序操作之后,主要元素必然会
出现在列表长度一半之后的一个位置上。所以,我们只需要判断列表中是否有超过一半的元素与中间元素相同即可(如果有,中间元素为主要元素;否则,不存在主要元素)。
1. 其实上面这道题有一个经典的解法,就是使用摩尔投票法(Boyer–Moore majority vote)。摩尔投票法有时候也被称为“多数投票法”,该算法解决的问题是如何在任意多的候选人中(选票无序),找到获得票数最多的那个。
摩尔投票法分为两个阶段:
对抗阶段:分属两个候选人的票数进行两两对抗抵消
• 计数阶段:计算对抗结果中最后留下的候选人票数是否有效

        大家不妨可以将摩尔投票法的工作原理想象为诸侯争霸,假设每个
国家都是全民皆兵,并且打起仗来都是以 1 换 1 的形式消耗人口,当一个国家人口总数为 0,那么 Gameover,OK,如果某国人口数量超过所有国家好了,提示到此为止,大家开始专注搞代码吧!

s = [2,2,4,2,3,6,2]
s.sort()
if len(s) % 2 == 0:
    a = s[int(len(s)/2)]
else:
    c = len(s) - 1
    a = s[int(c/2)]
b = s.count(a)
if b > int(len(s)/2):
    print("主要元素是",a)
else:
    print("没有主要元素")



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-12-17 15:00:54 | 显示全部楼层
周末多学点,打卡

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 09:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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