1.zip函数

zip()函数返回一个zip类型的对象,可以转换为list或dict

#定义列表
a = [1, 2, 3]
b = [4, 5, 6]# 打包为元组的列表,而且元素个数与最短的列表一致
a_b = zip(a, b)
# 输出zip函数的返回对象类型
print("a_b类型%s" % type(a_b))  # 输出:a_b类型<class 'zip'>
# 输出a_b
print(a_b)             # 输出:<zip object at 0x000001F4FB05A440>,# 返回了这个zip对象在内存中的存储位置# 将a_b转换为list形式或dict形式可以观看数据
print(list(a_b))       # [(1, 4), (2, 5), (3, 6)]
# 或者转换为dict形式(此时不采取上述转换为list的操作)
print(dict(a_b))       # {1: 4, 2: 5, 3: 6}

2.zip(*zipped)函数

zip(*zipped)中的*zipped参数,可以是list数组,也可以是zip()函数返回的对象

例1:对二维列表的竖直方向求和或求均值

sheet=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]for i in zip(*sheet):print(i)print(sum(i)/len(i))# 输出:
# (1, 4, 7, 10) 此时len(i)=4
# 5.5
# (2, 5, 8, 11)
# 6.5
# (3, 6, 9, 12)
# 7.5

例2:对一维字符串列表的操作

list1=['abcd','adks','ksc']
for x in zip(*list1):print(x)# 对每个单词依次取相应位置的字符组成一个元组tuple,当某个字符串结束时则停止
# 输出 ('a', 'a', 'k')   ('b', 'd', 's')   ('c', 'k', 'c')

3.编程题:最长公共前缀(力扣题)

题目描述:在一行中输入以空格间隔的若干以字母数字字符组成的字符串(字符串之间不包含其他字符)‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪ 定义一个函数,找出这些字符串的最长的共有前缀并输出‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‫‪‪‪‪‪‪‫‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪‪,如果不存在共有前缀,输出‘NOT FOUND’

示例:输入:water waiter watt   输出:wa

code:

def f(strs):prefix = ''for x in zip(*strs):             # 每个单词依次取相对应位置的字符组合if len(set(x)) == 1:         # 若去重后长度为1则为共有前缀字符(集合set元素唯一,可以去除                # 重复元素。三个元素相同时,去重后集合长度为1)prefix = prefix + x[0]   # 将共有字符拼接到字符串上else:                        # 若出现不同字符结束循环breakif prefix:                       # 若字符串非空return prefix                # 返回共有前缀else:return 'NOT FOUND'
strs=list(input().split())  # 可以接收空格为间隔的所有元素构成列表
print(f(strs))# 检验程序:
# 在python命令行输入:water waiter watt
# 则strs为:['water','waiter','watt']
# 最后一行输出:'wa'

zip()函数以及编程题:最长公共前缀(代码简单易懂)相关推荐

  1. Leetcode刷题-最长公共前缀

    Leetcode刷题-最长公共前缀 简介 题目 个人答案及结果 学习一下官方的 简介 最近尝试下大家口口相传的神器 leetcode-cn.com,大家自己注册就可以选择题库进行使用了.我都会先自己出 ...

  2. LeetCode题组:第14题-最长公共前缀

    1.题目:最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",&quo ...

  3. [Leedcode][JAVA][第14题][最长公共前缀][二分][横竖扫描][分治]

    [问题描述][中等] 编写一个函数来查找字符串数组中的最长公共前缀.如果不存在公共前缀,返回空字符串 "".示例 1:输入: ["flower","f ...

  4. 算法题---最长公共前缀

    题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符 ...

  5. 力扣刷题——最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:strs = ["flower","flo ...

  6. 【LeetCode - Java】14. 最长公共前缀 (简单)

    目录 1. 题目描述 2. 解题思路 3. 代码实现 3.1 横向扫描 3.2 横向扫描(优化储存) 3.3 纵向扫描 3.4 横向扫描(逆序) 3.5 对比 1. 题目描述 2. 解题思路 对于一个 ...

  7. leetcode算法题--最长公共前缀

    原文链接:https://leetcode-cn.com/problems/longest-common-prefix/ 纵向扫描 string longestCommonPrefix(vector& ...

  8. 20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  9. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

最新文章

  1. Node.js基础知识普及
  2. 华为USG防火墙双机热备(业务口工作在三层上下行连接路由器)
  3. django 日志多个服务连接_Django多进程日志文件问题
  4. Android底部菜单栏的两种实现方式 附完整源码
  5. java digester map_Tomcat7启动分析(三)Digester的使用(转载)
  6. h5页面制作软件html包,iH5专业H5页面制作工具网页版
  7. 二阶系统动态响应特性与阻尼比的关系
  8. 2012-07《信息资源管理 02378》真卷解析,逐题解析+背诵技巧
  9. 软件设计模式之路-----装饰者模式
  10. 贷超、贷超分销系统 贷超分销模式 简介
  11. 【TWVRP】基于matlab粒子群算法求解带时间窗的车辆路径规划问题(总成本最低)【含Matlab源码 2590期】
  12. 使用Python3采集小说网站
  13. 51单片机控制舵机,舵机不动的定时器原因
  14. 结对项目-小游戏连连看
  15. 以太坊-EVM第3部分——动态数据类型的表示方法
  16. python 通达信数据_Python读取通达信本地数据
  17. php鼠标已入移除,原生javascript学习:鼠标移入移出改变样式
  18. TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of t
  19. vlan(三种模式)实验
  20. 使用 MyBatis 实体类里的 Double 类型查询不到值

热门文章

  1. C/C++编程学习:MD5算法代码实现
  2. Python+Socket实现多人聊天室,功能:好友聊天、群聊、图片、表情、文件等
  3. 一款双人对打游戏(c++)
  4. Java job interview:项目架构研发使用Apache Kylin搭建企业级开源大数据分析平台
  5. AS--›Gradle 自动查找依赖版本冲突,强制指定依赖版本号
  6. java基本微信小程序的快递柜自动取货管理系统 uniapp 小程序
  7. 12. Linux系统管理(2)
  8. 我的世界手机版javaui材质包_PBR基于物理的光照纹理包绘制-教你做我的世界光追材质包(理论篇)...
  9. Flutter中使用Column中白屏问题
  10. 【英语演讲】Commemorative Speech