python中列表生成式

1.列表生成式
Python内置的一种极其强大的生成列表 list 的表达式。返回结果必须是列表。

格式:[ 变量表达式 for 变量 in 表达式 if 变量的判断条件(结果为True 或者False)]

#需求1:接收变量 k a b
常规写法:
s = ‘51 5000 10000‘
a = s.split()
print(a)
li = []
for item in s.split():
li.append(int(item))
print(li)
k,a,b = li
print(k,a,b)
列表生成式:
li = [int(item) for item in s.split()]
print(li)
k, a, b = li
print(k, a, b)

需求2:生成一个列表,列表的元素分别为[11 22 9**9 ]

li = []
for i in range(1, 10):
li.append(i ** i)
print(li)

print([i ** i for i in range(1, 10)])

找出1~10之间的所有偶数
print([i for i in range(1,11) if i %2 == 0])
#s1 = ‘ABC‘ s2=‘123‘ A1 A2 A3...C1 C2 C3
print([i + j for i in ‘ABC‘ for j in ‘123‘])

2.列表生成式变形之for循环

li = [
[1,2,3],
[4,5,6],
[7,8,9]
]
resli = []
for item1 in li: #[1,2,3] [4,5,6] [7,8,9]
for item2 in item1:
resli.append(item2)
print(resli)

print([item2 for item1 in li for item2 in item1])

from itertools import chain
print(list(chain(*li)))

#1.找出1~10之间的所有偶数,并且返回一个列表(包含以这个偶数为半径的园的面积)
方法1:
import math
li = []
for r in range(2, 11, 2):
square = math.pi r r
li.append(square)
print(li)
方法2 :
print([math.pi r r for r in range(2, 11, 2)])
方法3:
def square(r):
"""
求以r为半径的圆
:param r:半径
:return:
"""
res = math.pi r r
return res
print([square(i) for i in range(2,11,2)])

#找出1~100之间的所有素数 (列表生成式 + 函数)
def isPrime(num):
for i in range(2,num):
if num % i == 0:
return False
else:
return True

print([i for i in range(2,101) if isPrime(i)])

  • 题目描述:
    给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输
    入值小于1000。
    如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
    #[2,3,5,7]
  • 输入描述:
    输入包括一个整数n,(3 ≤ n < 1000)
  • 输出描述:
    输出对数
  • 示例1 :
    输入:
    10
    输出:
    2

#定义函数判断是不是质数
def isprime(x):
for i in range(2,x):
if x%i==0 :
return False
else:
return True
#将比给定的正整数小的所有质数存在列表中
N = int(input(‘N:‘))
small_prime = [ num for num in range(2,N) if isprime(num)]
#将可以相加等于该正整数的质数挑选出来
result = [ prime for prime in small_prime if N - prime in small_prime and prime <=N/2]
#输出得到的指定素数列表的长度 就是统计出的素数对的数量
print(len(result))

原文地址:https://blog.51cto.com/12893781/2403807

时间: 2024-11-05 16:03:10

python中列表生成式的相关文章

Python函数编程——列表生成式和生成器

Python函数编程--列表生成式和生成器 一.列表生成式 现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 1.二逼青年版 生成一个新列表b,遍历列表a,把每个值加1后存在b里,最后再把a=b, 这样二逼的原因不言而喻,生成了新列表,浪费了内存空间. >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in

python中列表的应用

本文主要介绍了:python中列表的主要应用和一些列表自带的一些函数 代码: #!/usr/bin/env python# author by lh# -*- coding:utf-8 -*- name_list=['al','ed','fg']print name_list #打印列表 print name_list[0] #索引 print name_list[0:2] #切片 for i in name_list: #for循环打印 print i name_list.append('ed

Python中列表的一些方法

Python中列表的常用内置方法 1.向列表的后面追加  list.append() 2. 清空列表 list.clear() 3. 列表复制 list.copy( )  深复制 list.deepcopy() 4. 扩展原列表 list.extend() 5. 获取当前值索引的位置 list.index()  左边的优先找到 6.在列表的指定位置插入指定的元素 list.insert(index,value) 7.删除列表的某个下标值 list.pop()  --通过下标删除 8.删除列表中的

python中列表(list)函数及使用

序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片,加,乘,检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可

python之列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环: >>> L = []

python的列表生成式

一.r的防止字符转义 print r"a\nb" 运行结果: a\nb 二.获取变量类型 a = r"a\nb" print type(a) 运行结果: <type 'str'> 三.判断类型 a = r"a\nb" print isinstance(a,str) 运行结果: True 四.对list.tuple.dict.set进行迭代 4.1常用的方式 list = ['a','b','c'] for i in list: pri

python的列表生成式和生成器

1.列表生成式是Python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理,语法格式为: [exp for val in collection if condition] 相当于 resul = [] for val in collection: if(condition): result.appen(exp) 例子:求1到10的偶数的平方,代码如下: li = [x*x for x in xrange(1,11) if x%2==0] print

Python之列表生成式、生成器

列表生成式 --可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁: >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> [x * x for x in range(1, 11) if x % 2 == 0] [4, 16, 36, 64, 100] >>> [m + n for m in 'ABC' for n in '

5.1.24 Python之列表生成式、生成器、可迭代对象与迭代器

语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable.Iterator与Generator之间的关系 一.语法糖的概念 "语法糖",从字面上看应该是一种语法."糖",可以理解为简单.简洁.其实我们也已经意识到,没有这些被称为"语法糖"的语法,我们也能实现相应的功能,而 "语法糖"使我们可以更加简洁.快速的实现这些功能. 只是Python解释器会把这