python——列表生成式

概述:

          列表生成式即List    Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。

          列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。

格式:

variable    =    [out_exp    for    out_exp    in    input_list    if    out_exp    ==    2]

例题练习:

        下面通过例题来对列表生成式进行深入的理解。

1. 生成一个列表,列表元素分别为 [1*1,2*2,3*3……n*n],假设n = 10。

## 若用一般方法实现代码如下:

## 若用列表生成式:

但是结果一模一样,如下图:

2.接着上一个需求,要求返回的序列中不存在偶数项:

## 若用列表生成式代码如下:

## 其实将上面的代码翻译一下,就和下面代码一个意思:

执行结果如下:

3. 字符串s1 ='ABC',字符串 s2 = '123',要求:生成序列 A1 A2 A3 B1 B2 B3 C1 C2 C3

## 初学者思维:

## python老手思维:

运行结果是相同的:

4. 将3x3的矩阵li1转化成一个数组(列表),且使该数组中仅仅包含偶数:

li1 =[
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 采用列表生成式的代码如下:

# 下面代码这种思维就有点像用c语言编程了,既然python中有简单的方法,我们最好就用简单的方法:

运行结果如下:

5. 找出1-10之间所有的偶数,并且返回一个列表(这个列表中含以这个偶数为半径的圆的面积)

方法一:使用列表生成式,计算圆的面积要用到圆周率参数,需要导入math模块:

方法二:  定义一个求圆面积的函数,然后在列表生成式中直接调用函数,从而求出序列中符合条件的半径的面积:

运行结果:

6. 找出1-100之间的所有的质数:

## 说明:列表生成式和函数的结合使用,应用是很广泛的:

7.  腾讯2018校招在线编程题:

第一步:从终端接收一个输入的数:

num1 = int(input('输入3<num<1000的整数:'))

第二步:找出接收的数的范围以内的质数:

def zhishu(f):
    if f == 1:
        return False
    for j in range(2, f):
        res = f % j
        if res == 0:
            return False
    else:
        return True

list1 = [i for i in range(2, num1+1) if zhishu(i)]

第三步: 求出符合题目条件的质数对的数量:

       方法一:

N = 0
for n in list1:
    for k in list1:
        if n + k == num1 and n <= k:   ### 写到这时,马同学思维是解决重复,我想着怎样让不重复
            N += 1
print(N)

      方法二:

N = 0
for item in list1:       ### 老师的思维
    if 10-item in list1 and item <= 10-item:
        N += 1
print(N)

        明显第二种方法更简单,而且思维也不是太难想。 但是为什么就想不到了,因为对题目理解的太浅薄了,对题目这个问题的条件没有相互联系,对题目过程没有做深入的演练,导致只能用很low的思维去解决问题。

 

 

 

  • 90
    点赞
  • 355
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Jedi Program Editor [绝地程序编辑器] V1.0.1.4一款国人造的程序编辑器 - 特别献给Delphi程序员!中国自己的 Open Source 软件,献给delphi迷们的一个小礼物包!:-)(Jedi Program Editor V1.0.0.6) 在编程中,我发现用记事本编辑程序不太方便,因此写了这个东东,我写这个东西,是因为我自己的需要,首先,再也不必为了修改一点小错误就打开Delphi环境:如改窗体的某一个属性;另外,我需要程序框架和程序功能文档的自动生成,——每次都要自己写,我已经厌倦了(目前这一功能还没有实现,sss)。它的主要特点如下:★页式多文档打开支持。 ★多种程序语言语法高亮度显示: Delphi(Object Pascal) SQL,支持以下的SQL语法: IBM DB2 Version 5 Informix Online Server 7.22 Interbase 5.0 Microsoft Access 97 Microsoft SQL Server 6.5 Oracle 8.0.0.0 Sybase Adaptive Enterprise 12.0 Basic(Visual Basic and Script) C++ Perl PHP Java HTML TCL/tk AWK Script Python CA-Clipper MS-DOS Batch File INI Files Standard ML Foxpro Fortran Baan 4GL ADSP Resource Files 68HC11 Assembler Syntax Highlighter Javascript files Syntax Highlighter Cascading Stylesheets Syntax Highlighter Cache files Syntax Highlighter Kix Scripts Syntax Highlighter Rexx Syntax Highlighter ★多种选择模式支持, ●正常选择模式 (Alt+N) ●列选择模式 (Alt+C) ●行选择模式 (Alt+L)★支持程序语言语法高亮度显示颜色的可视化调整:★支持书签:十个书签, 使用方法同Delphi: Ctrl+Shift+数字 使用或清除书签,Ctrl+数字 跳转到指定书签位置。★支持多级Undo和Redo操作,层次数可以自己设置。★支持最近文件列表。★支持查找、替换:同Delphi: ★支持直接编辑Delphi的窗体文件(dfm)。★支持直接编辑二进制文件: 热键: Ctrl+H;而Ctrl+T从二进制编辑器左边切换到右边。★支持直接将源程序文件导出为Word文档或超文本形式。★支持代码模板和代码自动完成(Code Templates): 热键:Ctrl+J★支持自动文件保存。★支持自动文件备份,你可以选择覆盖式备份或不覆盖式备份。★支持“编辑”命令键的自定义:★支持行号显示: ★可以用指定颜色显示当前行:★支持文件拖放。★ASCII 码表工具: 热键:Ctrl+Alt+A★支持自定义工具: 现在,你可以把帮助文件等其它你所中意的程序挂在它下面。★支持在文件中查找和替换: 热键: F4★支持打印。★块缩进和撤销缩进. 块缩进: Shift+Ctrl+I; 撤销缩进: Shift+Ctrl+U★在过程之间跳转:Ctrl+PGUP; Ctrl+PGDN ,仅限于Delphi(Pascal)语言.★展开/收缩代码: F6★在展开/收缩代码间导航: 到上一个收缩点 Ctrl+[, 到下一个收缩点: Ctrl+]★键盘宏纪录支持★参数设置对话框增加文件关联页面: 现在你可以在编辑器中自由的增加删除你想要的文件关联了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值