Python练习(2)

重复元素判定续。利用集合的无重复性来编写一个程序如果有一个元素出现了不止一次则返回true但不要改变原来列表的值:

一:

def has_duplicates(lst):

    # 使用集合来存储已经见过的元素

    seen = set()

    

    for item in lst:

        if item in seen:

            # 如果元素已经在集合中,说明有重复

            return True

        # 将元素添加到集合中

        seen.add(item)

    

    # 如果循环结束还没有找到重复元素,返回False

    return False

 

# 示例列表

example_list = [1, 2, 3, 4, 5, 1]

 

# 检查是否有重复元素

result = has_duplicates(example_list)

 

print(result) # 输出: True

 

 

 

不用集合来写:

二:

 def has_duplicates(lst):
 # 创建一个新列表来存储已经遇到的元素(这里我们实际上可以用集合来优化,但为了保持纯列表方法,我们还是用列表)
 encountered = []
  
 # 遍历原始列表中的每个元素
 for item in lst:
 # 检查元素是否已经在遇到的元素列表中
     if item in encountered:
 # 如果已经在列表中,说明有重复元素
     return True
 # 否则,将元素添加到遇到的元素列表中
 else:
 encountered.append(item)
  
 # 如果遍历完列表都没有找到重复元素,返回False
 return False
  
 # 示例列表
 List = ['1', 'd', '2']
 # 检查是否有重复元素
 print(has_duplicates(List)) # 输出: False,因为List没有重复元素
  

运用字典来写:

三:

def has_duplicates(lst):
    # 使用一个字典来计数每个元素出现的次数
    count_dict = {}
    
    # 遍历列表中的每个元素
    for item in lst:
        # 如果元素已经在字典中,增加其计数
        if item in count_dict:
            count_dict[item] += 1
        # 否则,将元素添加到字典中,计数为1
        else:
            count_dict[item] = 1
        
        # 检查计数是否大于1,如果是,则返回True
        if count_dict[item] > 1:
            return True
    
    # 如果遍历完列表都没有找到重复元素,返回False
    return False

#但是上面的方法有一个效率问题:它在每次添加元素到字典后都检查计数。

# 我们可以优化它,只在遍历完成后检查是否有任何元素的计数大于1。

四:

def has_duplicates_optimized(lst):

    # 使用一个字典来计数每个元素出现的次数

    count_dict = {}

    

    # 遍历列表中的每个元素

    for item in lst:

        # 如果元素已经在字典中,增加其计数

        if item in count_dict:

            count_dict[item] += 1

        # 否则,将元素添加到字典中,计数为1

        else:

            count_dict[item] = 1

    

    # 检查字典中是否有任何元素的计数大于1

    for count in count_dict.values():

        if count > 1:

            return True

    

    # 如果没有找到重复元素,返回False

    return False

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482933.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【智商检测——DP】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510, M 110; int f[N][M]; int main() {int n, k;cin >> n >> k;for(int i 1; i < n; i){int x;cin >> x;f[i][0] __gcd(f[i-1][0], x);for(int j 1; j < min(i, k)…

打造双层环形图:基础与高级渐变效果的应用

在数据可视化领域&#xff0c;环形图因其独特的展示方式而广受欢迎。今天&#xff0c;我们将通过ECharts库来创建一个具有双层渐变效果的高级环形图。本文将详细介绍如何实现这种视觉效果。 1. 环形图基础 首先&#xff0c;我们需要了解环形图的基本构成。环形图由内外两个圆…

开源的跨平台SQL 编辑器Beekeeper Studio

一款开源的跨平台 SQL 编辑器&#xff0c;提供 SQL 语法高亮、自动补全、数据表内容筛选与过滤、连接 Web 数据库、存储历史查询记录等功能。该编辑器支持 SQLite、MySQL、MariaDB、Postgres 等主流数据库&#xff0c;并兼容 Windows、macOS、Linux 等桌面操作系统。 项目地址…

MacOS 配置github密钥

MacOS 配置github密钥 1. 生成GitHub的SSH密钥对 ssh-keygen -t ed25519 -C "xxxxxxx.com" -f ~/.ssh/id_ed25519_github 其中 xxxxxxxxxxx.com 是注册github、gitee和gitlab的绑定账号的邮箱 -t ed25519:生成密钥的算法为ed25519&#xff08;ed25519比rsa速度快&…

网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)

网际协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;&#xff0c;又称互联网协议。是OSI中的网络层通信协议&#xff0c;用于跨网络边界分组交换。它的路由功能实现了互联互通&#xff0c;并从本质上建立了互联网。网际协议IP是 TCP/IP 体系中两个最主要的协议之…

永磁同步电机谐波抑制算法(11)——基于矢量比例积分调节器(vector PI controller,VPI controller)的谐波抑制策略

1.前言 相比于传统的谐振调节器&#xff0c;矢量比例积分调节器&#xff08;vector PI controller&#xff0c;VPI controller&#xff09;多一个可调零点&#xff0c;能够实现电机模型的零极点对消。因此VPI调节器也被广泛应用于交流控制/谐波抑制中。 2.参考文献 [1] A. G…

Windows下从命令行(Powershell/CMD)发送内容到系统通知中心

Windows下从命令行&#xff08;Powershell/CMD&#xff09;发送内容到系统通知中心 01 前言 在平时写脚本的时候&#xff0c;将日志等信息直接输出到控制台固然是最直接的&#xff0c;而如果是一些后台执行的任务&#xff0c;不需要时刻关注运行细节但是又想知道一些大致的情…

排序(数据结构)

排序&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 常见排序法 . 常见排序算法的实现 插入排序 1.直接插入排序 2.希尔排序( 缩小增量排序&#xff09; 希尔排序的特性总结&#x…

Android:生成Excel表格并保存到本地

提醒 本文实例是使用Kotlin进行开发演示的。 一、技术方案 org.apache.poi:poiorg.apache.poi:poi-ooxml 二、添加依赖 [versions]poi "5.2.3" log4j "2.24.2"[libraries]#https://mvnrepository.com/artifact/org.apache.poi/poi apache-poi { module…

基数排序(代码+注释)

#include <stdio.h> #include <stdlib.h>// 获取数组中的最大值 int GetMax(int* a, int n) {int max a[0];for (int i 1; i < n; i) {if (a[i] > max) {max a[i];}}return max; }// 对数组按照某个位数进行计数排序 void CountingSortForRadix(int* a, i…

Web基础

实践目标 &#xff08;1&#xff09;Web前端HTML&#xff08;2&#xff09;Web前端javascipt&#xff08;3&#xff09;Web后端&#xff1a;MySQL基础&#xff1a;正常安装、启动MySQL&#xff0c;建库、创建用户、修改密码、建表&#xff08;4&#xff09;Web后端&#xff1a…

Python酷库之旅-第三方库Pandas(251)

目录 一、用法精讲 1186、pandas.tseries.offsets.BusinessMonthEnd.is_year_start方法 1186-1、语法 1186-2、参数 1186-3、功能 1186-4、返回值 1186-5、说明 1186-6、用法 1186-6-1、数据准备 1186-6-2、代码示例 1186-6-3、结果输出 1187、pandas.tseries.offs…

1.1 STM32_GPIO_基本知识

GPIO概述 GPIO全称为通用输入输出端口&#xff0c;可以对外设的信息进行采集以及对外设进行控制。 GPIO最大翻转频率计算 GPIO可以进行快速翻转&#xff0c;每次翻转最快只需两个时钟周期。例如STM32的晶振为72MHz&#xff0c;那么GPIO的最快翻转速度为72/2 36MHz。对于F1&…

【合作原创】使用Termux搭建可以使用的生产力环境(一)

前言 真没想到一个Termux我居然玩了一个月之多&#xff0c;我的初衷只是想探求在手机上进行编程的可能性&#xff0c;当然不是看看那种&#xff0c;而是真正能用的那种&#xff0c;结果没想到折腾来折腾去居然就花了要一个月的时间。是时候将这些折腾的内容汇总成文档了&#…

IDL学习笔记(一)数据类型、基础运算、控制语句

近期&#xff0c;需要用到modis数据批量预处理&#xff0c;于是重新学习idl,感谢郭师兄推荐&#xff0c;以及张洋老师的详细教导。特以此为学习笔记&#xff0c;望学有所成。 IDL学习笔记&#xff08;一&#xff09; 数据类型数据类型创建数组类型转换函数代码输出print往文件…

TYUT设计模式大题

对比简单工厂&#xff0c;工厂方法&#xff0c;抽象工厂模式 比较安全组合模式和透明组合模式 安全组合模式容器节点有管理子部件的方法&#xff0c;而叶子节点没有&#xff0c;防止在用户在叶子节点上调用不适当的方法&#xff0c;保证了的安全性&#xff0c;防止叶子节点暴露…

16asm - 汇编介绍 和 debug使用

文章目录 前言硬件运行机制微机系统硬件组成计算机系统组成8086cpu组织架构dosbox安装配置debug debug使用R命令D命令E命令U命令T命令A命令标志寄存器 总结 前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解 十六位汇编 和 debug调试器的使用 硬件运行…

自动化检测三维扫描仪-三维扫描仪检测-三维建模自动蓝光测量系统

在现代工业制造领域&#xff0c;特别是在航天航空和汽车行业&#xff0c;产品零部件的精度和质量至关重要。CASAIM自动化智能检测系统能够实现对产品零部件的快速、准确的三维尺寸检测。其自动蓝光测量系统利用蓝色激光光源&#xff0c;通过非接触式扫描&#xff0c;能够快速获…

Maven、JAVAWeb、Servlet

知识点目标 1、MavenMaven是什么Maven项目的目录结构Maven的Pom文件Maven的命令Maven依赖管理Maven仓库JavaWeb项目 2.网络基础知识 3、ServletMaven Maven是什么 Maven是Java的项目管理工具&#xff0c;可以构建&#xff0c;打包&#xff0c;部署项目&#xff0c;还可以管理…

VLC 播放的音视频数据处理流水线搭建

VLC 播放的音视频数据处理流水线搭建 音视频流播放处理循环音频输出处理流水线VLC 用 input_thread_t 对象直接或间接管理音视频播放有关的各种资源,包括 Access, Demux, Decode, Output, Filter 等,这个类型定义 (位于 vlc-3.0.16/include/vlc_input.h) 如下: s…