python笔记(四)

python笔记(列表推导式)

1.split函数补充

split():字符串切割
该函数默认以空格为分割符,例如:

a='My name is LT'
b=a.split()
print(b)

[‘My’,‘name’,‘is’,‘LT’]

split()的括号中可以设置分割符,例如:

a='My%name%is%LT'
b=a.split('%')
print(b)

[‘My’,‘name’,‘is’,‘LT’]

当然也可以设置其分割的份数,例如:

a='My name is LT'
b=a.split(' ',1)	#以空格为分割符,切一刀
print(b)

[‘My’,‘name is LT’]

当设置切的刀数超过最多的分割数时,python并不会报错,而是切到最多为止

2.列表推导式

例:打印一个1-6的列表

  • 直接手打(最纯真的方法)
number=[1,2,3,4,5,6]
print(number)
  • 利用append插入(当列表数字多起来就不好用了)
number=[]
number.append(1)	#随后复制黏贴
number.append(2)
number.append(3)
number.append(4)
number.append(5)
number.append(6)
print(number)
  • for…in…+range()循环输入(原理同上)
number=[]
for a in range(1,7):
	number.append(a)
print(number)
  • 对上面的方法进行改善
number=list(range(1,7))
print(number)

上面都是一些基础方法,下面则是更为简洁的列表推导式代码

  • 列表内部直接循环
number=[a for a in range(1,7)]
'''
[]中第一个a表示列表中的元素,这是不断在变的
而第二个a是在循环中的迭代容器
a依次被赋予1,2,3,4,5,6的量
'''
print(number)
  • 列表推导式中的条件语句
number=[a*a for a in range(1,7) if a%2==0]
'''
列表中的元素为“a*a”
当a为偶数时执行(a%2==0)
a依次被赋予1,2,3,4,5,6的量
'''
print(number)

[4,16,36]

  • 当含有else时的语法
number=[a*a
	if a%2==0
	else a+10
	for a in range(1,7)]
'''
当a为偶数时,执行a*a
否则执行a+10
其中a依次被赋予1,2,3,4,5,6
注意一下语法,对a的赋值(for循环)要放在if和else后面
即不能number=[a*a for a in range(1,7) if a%2==0 else a+10]
注意语法!!!
'''	
print(number)	

[11,4,13,16,15,36]

  • 将下列客户清单的所有客户名的first name单独提出来并把首字母小写
names=['Karen Job','Enid Smith','Jodie North']
first_name=[name.split()[0].lower() for name in names]
'''
name依次赋值names中的三个元素
对name进行切开,以空格为分隔符
“[0]”代表切开后去第一个元素(即first name)
.lower()进行小写
'''
print(first_name)

[‘karen’,‘enid’,‘jodie’]

  • 信息筛选举例:将分数高于60的人物姓名输出
scores={'Tom':90,'Jimmy':85,
	'Kim':40,'William':61}
passed=[name for name, score in scores.items() if score>=60]
print(passed)

[‘Tom’,‘Jimmy’,‘William’]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值