Python笔记(列表生成)

列表生成可以自动生成一个列表,不用人工繁琐的去定义。

顺便说下range函数,range函数格式为range(start,stop,step),参数为起始、终止但不包含、间隔。range(1,10,1)得到的是1-9这9个数字。

如果列表生成连续的数字可以使用range函数来完成

L=list(range(0,10,1))

print(L)
返回列表1-9

如果生成1*1,2*2...的列表则比较麻烦
L=[]
for i in range(1,11,1):
 L.append(i*i)
print(L)

返回1*1,2*2...10*10的列表

如果使用列表生成式则是

L=[x*x for x in range(1,11)]
print(L)

可以分别来理解,L=[x*x],后面跟着x的取值范围。

同样的在列表生成式中也可以加入条件

L=[x*x for x in range(1,11) if x%2==0]
print(L)
1-10中偶数的平方。

字符串也被认为是一个列表,因此也可以对列表进行两层循环搭配

L=[x+y for x in 'abcde' for y in 'fghij']
print(L)

返回['af', 'ag', 'ah', 'ai', 'aj', 'bf', 'bg', 'bh', 'bi', 'bj', 'cf', 'cg', 'ch', '
ci', 'cj', 'df', 'dg', 'dh', 'di', 'dj', 'ef', 'eg', 'eh', 'ei', 'ej']

列表生成式的书写格式:[x*x for x in range(1 , 11)]

第一:把要生成的元素 x*x 放到前面

第二:后面跟上for循环

这样就可以把list创建出来。

for循环后面还可以加上if判断,这样可以筛选出偶数的平方:

>>> [x*x for x in range(1 , 11) if x%2 == 0] 
[4, 16, 36, 64, 100] 
>>>  

当然,可以使用两层循环,生成全排列:

>>> print [m + n for m in 'ABCD' for n in 'XYZ'] 
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ', 'DX', 'DY', 'DZ'] 
>>>  

>>> 如何使用两个变量来生成list:

d = {'Java':"99" , 'C':"99" , 'C++':"99" } 
L = [k+'='+v for k , v in d.iteritems()] 
 
print L 

最后来做一个练习:

L = ['Java' , 'C' , 'Swift' , 'Python' , 123] , 现在有 list 中包含字符串,和整数,把list中得大写字符转为小写,推到出另外一个list":

1、使用内建的isinstance函数可以判断一个变量是不是字符串

2、s.lower() 可以将一个大写字母转为小写。

3、增加if语句保证列表生成式正确执行。

代码如下:

L = ['Java' , 'C' , 'Swift' , 'Python' , 123] 
print [s.lower() if isinstance(s , str) else s for s in L ] 

时间: 2024-08-19 08:32:55

Python笔记(列表生成)的相关文章

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

Python操作列表之List.insert()方法的使用

  这篇文章主要介绍了Python操作列表之List.insert()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 insert()方法插入对象obj到列表的偏移量索引. 语法 以下是insert()方法的语法: ? 1 list.insert(index, obj) 参数 index -- 这是要插入对象obj必要的索引 obj -- 这是将被插入到给定的列表中的对象 返回值 此方法不返回任何值,但它插入指定的索引处的指定元素 例子 下面的例子显示了insert()方法的使

python使用pil生成缩略图的方法

 这篇文章主要介绍了python使用pil生成缩略图的方法,涉及Python使用pil模块操作图片的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了python使用pil生成缩略图的方法.分享给大家供大家参考.具体分析如下: 这段代码实现python通过pil生成缩略图的功能,会强行将图片大小修改成250x156 ? 1 2 3 4 from PIL import Image img = Image.open('jb51.jpg') img = img.resize((250

Python文档生成工具pydoc使用介绍

  这篇文章主要介绍了Python文档生成工具pydoc使用介绍,本文讲解了基本用法.获取帮助的方法.生成的文档效果图等内容,需要的朋友可以参考下 在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介绍pydoc. pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可

在Python的列表中利用remove()方法删除元素的教程

  这篇文章主要介绍了在Python的列表中利用remove()方法删除元素的教程,是Python入门中的基础知识,注意其和pop()方法的区别,需要的朋友可以参考下 remove()方法从列表中删除第一个obj. 语法 以下是remove()方法的语法: ? 1 list.remove(obj) 参数 obj -- 这是可以从列表中移除该对象 返回值 此方法不返回任何值,但从列表中删除给定的对象 例子 下面的例子显示了remove()方法的使用 ? 1 2 3 4 5 6 7 8 #!/usr

Python对列表排序的方法实例分析

  本文实例讲述了Python对列表排序的方法.分享给大家供大家参考.具体分析如下: 1.sort()函数 sort()函数使用固定的排序算法对列表排序.sort()函数对列表排序时改变了原来的列表,从而让其中的元素能按一定的顺序排列,而不是简单的返回一个已排序的列表副本. 注意sort()函数改变原来的列表,函数返回值是空值即None.因此,如果需要一个已排好序的列表副本,同时又要保留原有列表不变的时候,就不能直接简单的使用sort()函数.为了实现上述功能使用sort()的方法是:先获取列表

python通过openpyxl生成Excel文件的方法

  本文实例讲述了python通过openpyxl生成Excel文件的方法.分享给大家供大家参考.具体如下: 使用前请先安装openpyxl: ? 1 easy_install openpyxl 通过这个模块可以很方便的导出数据到Excel ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 from op

python删除列表中重复记录的方法

  这篇文章主要介绍了python删除列表中重复记录的方法,涉及Python操作列表的相关技巧,需要的朋友可以参考下 ? 1 2 3 4 def removeListDuplicates(seq): seen = set() seen_add = seen.add return [ x for x in seq if x not in seen and not seen_add(x) ] 希望本文所述对大家的Python程序设计有所帮助.

python 合并列表

Python 合并列表 方式一:使用extend Python代码   >>> a=[1,2,3]   >>> b=['a','b','c']   >>> a.extend(b)   >>> a   [1, 2, 3, 'a', 'b', 'c']   >>> b   ['a', 'b', 'c']       方式二:使用分片赋值 Python代码   >>> a=[1,2,3]   >&g