列表推导

1
2
3
4
5
6
# 列表推导
l = [x for x in range(10)]
# 集合推导
s = {x for x in range(10)}
# 字典推导
d = {x:x/2 for x in range(10)}

计数器

这个很有用!!!不用自己遍历了!

1
2
3
4
5
6
7
8
from collections import Counter

count = Count("hello world")

#输出结果
# count = Count({ l : 3, o : 2, : 1, e : 1, d : 1, h : 1, r : 1, w : 1})
# c.most_common(2)
# [( l , 3), ( o , 2)]

FizzBuzz

一个很经典的题目:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。


我自己设计的话,肯定是循环和if 啦!!!

1
2
for x in range(1,101):
print("fizz"[x%3*len('fizz')::]+"buzz"[x%5*len('buzz')::] or x)

涉及的知识点有点多,操作有点666!!!

print语句的单行判断输出

srt的切片

[::]的用法

至于为什么会有len(‘fizz’)len(‘buzz’)目的是为了保证只要余数不为0那么起始索引必须大于字符长度就行。

print包含单行if语句

1
print('A' if 1 else 'B')

数值的比较

1
2
3
4
a = 5 
# 其实不太常用
if 1<a>4:
print(a)

同时迭代两个列表

1
2
3
4
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
print(teama + " vs. " + teamb)

zip()是内置函数,用户很多的。

带索引的列表迭代

1
2
3
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print(index, team)

enumerate这个函数其实使用不多。

初始化列表

1
l = [0]*3

用过MALTAB的人大概知道这种用法。

在python中批量打印其实也用的较多。

列表转字符串--敲黑板!!!!!

1
2
l = ['as',  'sad',  'assad',  'sadfas']
s = ','.join(l)

此方法效率非常高!!!!!!!!!!!!!!!!!

对于大量字符串拼接的采用此方法效果很好!

迭代工具

1
2
3
4
from itertools import combinations
l = [1, 2, 3, 4]
for i in combinations(teams, 2):
print(i)

其实就是个回归的,自己写也可以。

False == True --> 沙雕操作

1
2
3
False = True
if False:
print(True)

因为Fasle和True在python中也是变量,所以可以赋值。

但是真要是这么写容易被打死。

相关文章
评论
分享
  • python类反射

    起因 最近一直在写数据构造器,所有的虚假数据均调用的是一个Methor类,需要用到类反射。 采取的做法方法一 为了方便,采取了eval()将组合成的方法名字符串运行成函数,刚开始很正常,但是一看速度,心态炸了啊!!!!!平均需要0....

    python类反射
  • 代理IP池的构建

    最近开始学scrapy的使用,总的来说框架使用起来还不错,毕竟使用了异步架构,效率挺高的。底层还没看,再学点去读源码。 成果: 本来计划爬西刺代理构建好代理IP池然后再去爬其他网站数据,结果我是想多了,免费的不靠谱啊,没有合适的IP...

    代理IP池的构建