python列表推导式及其简单应用
列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表
一个简单平方
普通for循环
for i in range(1,5):
print(i*i,end='')
列表推导式
res = [x*x for x in range(1,5)]
print(res)
执行顺序
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
等价于
for x in range(1,5):
if x > 2:
for y in range(1,4):
if y < 3:
return x*y
leetcode17电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
这题看起来递归比较合适,但是强行循环也不是不可以
class Solution:
def letterCombinations(self, digits):
m = {
'2': list('abc'),
'3': list('def'),
'4': list('ghi'),
'5': list('jkl'),
'6': list('mno'),
'7': list('pqrs'),
'8': list('tuv'),
'9': list('wxyz'),
}
if not digits:
return []
res = ['']
for i in digits:
res = [x + y for x in res for y in m[i]]
return res
这里的循环其实不止两层,取决于你输入的数字的位数。可以打印输出看一下,假设输入的数字是234
['a', 'b', 'c']
['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf']郑州人流多少钱 http://mobile.sgyy029.com/
['adg', 'adh', 'adi', 'aeg', 'aeh', 'aei', 'afg', 'afh', 'afi', 'bdg', 'bdh', 'bdi', 'beg', 'beh', 'bei', 'bfg', 'bfh', 'bfi', 'cdg', 'cdh', 'cdi', 'ceg', 'ceh', 'cei', 'cfg', 'cfh', 'cfi']
第一个2对应的字母是[‘a’, ‘b’, ‘c’]
第二个3对于的字母是[‘d’, ‘e’, ‘f’]
第三个4对于的字母是[‘g’, ‘h’, ‘i’]
开始的时候res长度为1,可以理解为
res = ['']
m = ['a', 'b', 'c']
for x in res:
tem = []
for y in m:
res = x + y
tem.append(res)
print(tem)
当有两个数字时
res = ['']
m = ['a', 'b', 'c']
n = ['d', 'e', 'f']
tem = []
for x in res:
for y in m:
for k in n:
res = x + y + k
tem.append(res)
print(tem)
这样一层一层加下去就可以,不过即使知道要循环几次,也很难表达出来,这个时候用列表推导式就很方便
python列表推导式及其简单应用的更多相关文章
- Python列表推导式和嵌套的列表推导式
列表推导式提供了一个更简单的创建列表的方法.常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列. 例如,假设我们想创建一个平方 ...
- python 列表推导式 - python基础入门(16)
截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高. 一.什么是推导式 推导式是从一个或者多个 ...
- python列表推导式(扫盲)
1) 简单了解: 所谓的列表推导式,就是指的轻量级循环创建列表. 格式: 列表推导式的常见形式: my_list = [ item for item in iterable] my_list: 列表名 ...
- 迭代列表不要For循环,这是Python列表推导式最基本的概念
如果你还在使用 For 循环迭代列表,那么你需要了解了解列表推导式,看看它的基本概念都是什么. 列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅 ...
- python列表推导式详解
推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,简化代码,速度快等优点.推导式包括:1.列表推导式2.字典推导式3.集合推导式4.嵌套列表推导式注意: 字典和集合推导是最近才加入到Pyt ...
- python列表推导式详解 列表推导式详解 字典推导式 详解 集合推导式详解 嵌套列表推导式详解
推导式是Python中很强大的.很受欢迎的特性,具有语言简洁,简化代码,速度快等优点.推导式包括:1.列表推导式2.字典推导式3.集合推导式4.嵌套列表推导式注意: 字典和集合推导是最近才加入到Pyt ...
- Python 列表推导式、矩阵、格式化输出
列表推导式 列表推导式提供了从列表.元组创建列表的简单途径.语法: [表达式 for语句 if语句] 创建并返回一个列表.if语句可选. 示例: list1=[1,2,3,4] #使用元组也行 lis ...
- python(列表推导式和生成器表达式)
从母鸡下蛋的故事讲起 老母鸡 = ('鸡蛋%s'%i for i in range(10)) print(老母鸡) for 蛋 in 老母鸡: print(蛋) g = (i*i for i in r ...
- Python列表推导式玩法
前言 列表做为python的基础,是必须学习的语法之一.一些基础的之前已经是反复温习和使用了,今天我们来学习它的进阶版-->列表推导式. 列表推导式: 优点:是将所有的值一次性加载到内存中,相比 ...
随机推荐
- django学习-数据库配置-创建模型
数据库配置 在mysite/settings.py中,包含了django项目设置的python模块 通常,这个配置文件使用SQLite作为默认数据库.如果你不熟悉数据库,或者只是想尝试下django, ...
- Druid(数据库连接池) 学习资料
学习资料 网址 官方文档 https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 主流Java数据库连接池 ...
- Mysql8.0中caching_sha2_password报错解决
https://blog.csdn.net/litte_frog/article/details/80874105
- %STSADM% -o addsolution -filename AEMediaPlayerWebpart.wsp
SET STSADM="c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\bin\STSADM. ...
- jenkins+maven+svn 持续集成环境搭建
说明:部署传统的web应用(.war) 准备工作: (1) 系统环境:CentOS7 (2) 安装JDK:https://www.cnblogs.com/myitnews/p/11493847.htm ...
- svn版本库操作(四)
一.使用命令行模式访问 SVN 服务器 1. 检出(checkout) (1) 首先进入自己的工作目录,例如:D:\svnSpace cd D:\svnSpace (2) 运行 svn checkou ...
- 【java】[null]的问题
这么写逻辑就有问题,改成下面的
- [LeetCode] 44. Wildcard Matching 外卡匹配
Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '? ...
- [LeetCode] 916. Word Subsets 单词子集合
We are given two arrays A and B of words. Each word is a string of lowercase letters. Now, say that ...
- shell之startup
#!/bin/sh # # # # PROJECT=$ APPWORK_DIR=~/apps/$PROJECT LOGPATH=~/logs/$ LOGFILE=~/logs/$PROJECT/${P ...