对于给出的一组数据,要生成列表有以下方法:
(1):
>>>l = []
>>>for x in range(10):
l.append(x) //追加元素到列表末尾
print l
[0,1,2,3,4,5,6,7,8,9]
(2):
>>>l = [x for x in range(10) if x%2==0] //我理解为先执行for语句再执行if语句,最后确定x
>>>print l
[0,2,4,6,8]
---------------------------------------------------------------------------------------------------------------------
廖雪峰老师教程下的练习题
请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:
L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = None
#输出['hello','world','apple']
// 内置函数lower可以转换为小写字母,但是整形和非字符没有lower语法,所以要将整形和非字符过滤掉
// isinstance函数可以判断一个元素是不是字符串
故答案为:
#!/usr/share/bin
#-*-coding:utf-8-*-
L1=['Hello','World',18,'Apple',None]
L2=[x for x in L1 if isinstance(x,str)==True]
print L2
-----------------------------------------------------------------------------------------------------------------------------------------------------
全字符匹配:
Python内置的enumerate函数可以把一个list变成索引-元素对
L1 = '甲乙丙丁戊己庚辛壬癸'
L2='子丑寅卯辰巳午未申酉戌亥'
L=[m+n for i,m in enumerate(L1) for j,n in enumerate(L2) ] //在for i,m ....中,如果不输入i,则输出m时会附带索引值,即0,’甲‘,此时虽然不输出索引值,但却是真实存在的,并可以用于对奇偶数进行运算判断取值(例如:if i%2==0)
print L
//虽然不是正确的天干地支顺序,但是也是全排序的一个思路了。。。。。。。。。
学习自廖雪峰官网:http://www.liaoxuefeng.com/