美文网首页生活不易 我用python我的python学习道路
关于python中分片表达式和列表解析式的使用

关于python中分片表达式和列表解析式的使用

作者: fred_33c7 | 来源:发表于2018-07-04 10:39 被阅读25次

leetcode中有一道题,大意是将句子按照空格分割,然后每个分割成的字母反写,比如:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

这道题思路很简单,1.分割 2.反写 3.返回
但是在具体写代码的时候,有一些技巧可以简化代码。

def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        list = s.split(' ')
        for n,item in enumerate(list):
            list[n] = ''.join(item[::-1])
        return ' '.join(list)

这是我一开始写的代码,用了for循环,很常见的写法,一般用到这种迭代结构,很容易想到循环语句。其中,反写,用了[::-1]这种分片表达式的写法。
for循环很常见,但是如果有2层,甚至3层的时候,很容易把自己都搞糊涂了。比如leetcode821题https://www.jianshu.com/p/20c0423a9e8a我的这篇文章中的第一种写法,用了2层for循环,很容易看的混乱。
这时候,用列表解析式就更简单,不容易混乱。

  • 列表解释式

列表解析式是python中的一个亮点语法。本质上就是用列表来构建列表,通过对已有列表中的每一项应用一个指定的表达式来构建出一个新的列表。列表解析式的优势是编码简单,运行起来很快。

列表解析式的三个核心要素是:
1.作用于输入序列的运算表达式;
2.对输入序列的循环表达式;
3.对输入序列的过滤条件,其中过滤条件是可选的。

比如我们想要用列表a生成列表b,其中列表b中的每个元素都是a中对应元素的二次方
代码片段:

a = [1,2,3,4,5,6,7,8,9,10]
b = [x**2 for x in a]
print(b)

运行结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

所以,开头这道题,可以简化的写法:

list_c = []
        for index, item in enumerate(S):
            if C == item:
                list_c.append(index)
        list_return = []
        for index, item in enumerate(S):
            distance = [abs(index - index_list) for index_list in list_c]
            list_return.append(min(distance))
        return list_return
  • 分片表达式

那就简单了,很容易理解,不过要注意的是,分片表达式是产生一个全新的列表。

相关文章

  • Python 各种推导式

    python 列表推导式 执行结果 生成器表达式 1 把列表解析的[]换成()得到的就是生成器表达式 2 列表解析...

  • 关于python中分片表达式和列表解析式的使用

    leetcode中有一道题,大意是将句子按照空格分割,然后每个分割成的字母反写,比如: 这道题思路很简单,1.分割...

  • Python编程学习笔记1.1

    《Python编程》学习笔记1.1 本篇承接上文,介绍列表解析、生成器表达式和map的使用,这些都是python中...

  • python笔记(

    常用 提高python编码效率 赋值 列表推导式 列表解析表达式,类似[i*2 for i in list] 三元...

  • Python_7_列表解析式-生成器

    1. 解析式 2. 列表解析式2.1. 列表解析式进阶 3. 其他解析式3.1. 集合表达式3.2. 字典解析式 ...

  • 列表推导式

    列表推导式 推导式 推导式(又称解析器),是 Python 独有的一种特性。使用推导式可以快速生成列表、元组、字典...

  • 9.解析式与生成器

    目录1.列表解析2.生成器表达式3.集合解析式4.字典解析式 1. 列表解析介绍 1.1 列表解析介绍 语法: ...

  • Python基础002--for、while、列表解析

    python注释以及换行符的使用、for循环和while循环、列表解析 python中的注释# --->单行注释三...

  • python 列表解析式:i for n in m的代码形式

    python 列表解析式:i for n in m的代码形式理解 列表解析 根据已有列表,高效创建新列表的方式。...

  • python——列表怎么玩:双重循环

    列表推导式(又称列表解析式)提供了一种简明高效的方法来创建列表。 列表推导式基本形式为: [表达式 for 变量 ...

网友评论

    本文标题:关于python中分片表达式和列表解析式的使用

    本文链接:https://www.haomeiwen.com/subject/eqzsuftx.html